2
에서 기능을 실행합니다루아 얻고 나는이 같은 일부 루아 코드가있는 경우 C
doSomething(function()
print("Hello!")
end)
을 내가는 C API를 사용하여, 나는 다음을 절약 할 수 있습니다 해봐요위한 C 루아 기능을 만드는 것이 그것을 만들 수있는 방법 함수가 전달되어 나중에 실행됩니까?
에서 기능을 실행합니다루아 얻고 나는이 같은 일부 루아 코드가있는 경우 C
doSomething(function()
print("Hello!")
end)
을 내가는 C API를 사용하여, 나는 다음을 절약 할 수 있습니다 해봐요위한 C 루아 기능을 만드는 것이 그것을 만들 수있는 방법 함수가 전달되어 나중에 실행됩니까?
스택의 정상적인 항목입니다. lua_isfunction()
으로 확인한 다음 luaL_ref()
을 사용하여 가비지 수집기에서 도용하지 않도록 참조를 생성 한 다음 lua_topointer()
에이 객체에 대한 포인터를 저장할 수 있습니다. 원하는 작업에 따라 다릅니다.
당신은 그냥 luaL_unref()
의 완료하면.
아, 나중에 실행 비트를 간과하면, 그냥'lua_call()'이지만 http://www.lua.org/manual/5.1/manual.html#lua_call에서 자세한 내용을 읽으십시오. – hroptatyr