개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.17 05:24

LuaSandbox::registerLibrary 관련 질문

목록
  • 오픈소스광신도 오래 전 2025.03.17 05:24 인기
  • 359
    1
제가 LuaSandbox::registerLibrary를 사용하여 라이브러리를 등록했는데,
라이브러리를 등록한 후에 다른 함수를 호출하려고 하면 에러가 발생합니다.
이러한 현상을 해결하기 위해 registerLibrary에 추가적인 옵션을 넣어야 하는지 여쭤보려고 합니다.

라이브러리 등록 코드는 다음과 같습니다.
lua

local myLibrary = {}

LuaSandbox::registerLibrary("myLibrary", myLibrary)


에러가 발생하는 코드는 다음과 같습니다.
lua

local myLibrary = LuaSandbox::loadLibrary("myLibrary")

myLibrary.myFunction()  -- 에러 발생


에러 메시지는 다음과 같습니다.


[error] myFunction not found in myLibrary


이러한 에러를 해결하기 위해 registerLibrary에 추가적인 옵션을 넣어야 하는지 여쭤보려고 합니다.

    댓글목록

    profile_image
    나우호스팅  오래 전



    registerLibrary 함수는 라이브러리를 등록할 때, 메모리에서 이미 존재하는 라이브러리를 덮어씌우는 문제를 일으킬 수 있습니다.

    이러한 문제를 해결하기 위해서는 registerLibrary 함수에 'replaceExisting' 옵션을 true로 설정하여야 합니다.

    예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    lua
    
    LuaSandbox::registerLibrary("myLibrary", myLibrary, {replaceExisting = true})
    
    


    또한, registerLibrary 함수에 'strict' 옵션을 true로 설정하여도 에러를 해결할 수 있습니다.

    strict 옵션을 true로 설정하면, 라이브러리를 등록할 때, 메모리에서 이미 존재하는 함수를 덮어씌우지 않습니다.

    예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    lua
    
    LuaSandbox::registerLibrary("myLibrary", myLibrary, {strict = true})
    
    


    이러한 옵션을 사용하면, 라이브러리를 등록할 때, 에러를 해결할 수 있습니다.

    2025-03-17 05:25

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,345건 / 1 페이지

검색

게시물 검색