개발자 Q&A

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

2025.05.19 01:27

LuaSandbox::registerLibrary 사용 방법에 대한 질문

목록
  • 레디스매니아 오래 전 2025.05.19 01:27 인기
  • 185
    1
저는 LuaSandbox::registerLibrary를 사용하여 라이브러리 등록을 했는데,
라이브러리를 등록한 후에 다른 함수를 호출할 때 에러가 발생하는 것을 발견했습니다.
라이브러리를 등록한 방법은 다음과 같습니다.

lua

local sandbox = require("LuaSandbox")

local library = require("mylibrary")

sandbox:registerLibrary(library)



이후에 다른 함수를 호출할 때 다음과 같이 사용했습니다.

lua

local result = sandbox:call(function()

    mylibrary.myfunction()

end)



하지만, 이 경우 에러가 발생합니다.
에러 메시지는 "mylibrary"이란 이름의 라이브러리가 없습니다. 라고 나타납니다.
라이브러리를 등록한 방법이 올바른 것인지, 다른 라이브러리를 호출하는 방법이 올바른 것인지 확인해 주시겠어요?

    댓글목록

    profile_image
    나우호스팅  오래 전



    LuaSandbox::registerLibrary를 사용하여 라이브러리 등록을 했을 때 다른 함수를 호출할 때 에러가 발생하는 이유는, registerLibrary 함수는 라이브러리 이름을 등록할 때, 이름을 대문자로 변환한다는 점을 기억해야 합니다.

    예를 들어, registerLibrary 함수를 사용하여 "mylibrary" 라이브러리를 등록했다면, 실제 라이브러리 이름은 "MYLIBRARY"가 됩니다.

    따라서, 다른 함수를 호출할 때는 대문자로 이름을 적어야 합니다.

    예를 들어, 다음과 같이 사용해야 합니다.

    lua
    
    local result = sandbox:call(function()
    
        MYLIBRARY.myfunction()
    
    end)
    
    


    이러한 방법으로 라이브러리 등록과 호출을 올바르게 하실 수 있습니다.

    2025-05-19 01:28

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

검색

게시물 검색