我今天刚刚下载了LuaBridge,到目前为止我对它非常满意。我注意到的一件事是,我能够规避将lua_State作为函数参数的正常要求。我能做到://C++filesvoidlove(inti){std::cout它会工作得很好,但如果我做任何事情会产生以下效果://C++filesstructTester{intnumber;voidMemFunction(inti){std::cout("Tester").addConstructor().addData("number",&Tester::number).addFunction("MemFunction",&Tester::Mem
考虑以下示例:functionProcess()localContainer=NewContainer()Container:On(EventType.Add,function()Container:DoSomething()end)--DoesnotGarbageCollectend在luabridge中,我将function()存储为LuaRef,它延长了Container的生命周期并且不会被GC,因为它是一个RefCountedObjectPtr这是我用来使用弱表的变通方法,但它看起来很丑:functionProcess()localContainer=NewContainer(
根据LuaBridgereadme,LuaBridge不支持“枚举常量”,我假设它只是enums。由于sf::Event几乎完全是enums,有什么办法可以公开这个类吗?目前我能想出的唯一其他解决方案是检测C++中的按键,然后向Lua发送一个描述事件的字符串。显然,现代键盘上有大约100多个键,这将导致大量、丑陋的if语句。对于那些没有使用过SFML的人:Linktosf::Eventclasssourcecode更新:在尝试创建我的问题中概述的函数后,我发现它无论如何都不起作用,因为在C++中不能返回多个字符串,所以大多数事件都被忽略了。示例来源(不起作用):std::stringg