jjzjj

c++ - 重载函数和 luabind 的问题

我有一个要绑定(bind)到lua的类。减少的代码可能是:classCSprite2D{voidsetPosition(glm::ivec2val){m_position=val;}voidsetPosition(intposX,intposY){m_position.x=posX;m_position.y=posY;}staticvoidexposeAPI(lua_State*L,constunsignedchar*data){assert(L);luabind::module(L)[luabind::class_("CSprite2D").def("setPosition",(vo

c++ - 在 C++ 中访问 Lua 函数的返回值,反之亦然

我在Lua中有一些函数,在C++中有一些函数,我设法从我的加法、幂和除法中得到了正确的结果。我遇到的唯一问题是阶乘,因为我无法将正确的数字传递给它,这应该是除法的结果。在Lua中:functionpowLua(a,n)b=1fori=1,ndob=b*aendreturnbendfunctiondivisionLua(a,b)c=b/areturncendaLua=additionLua(2,3)bLua=additionLua(1,3)print("ResultofadditionLuaisa="..aLua.."\nResultofadditionLuaisb="..bLua.."

c++ - 如何从 Lua 调用 C++ DLL 中的函数?

我有一个用C++编写的DLL,它是遗留代码,无法修改源代码。我希望能够从Lua调用DLL内部的一些函数.例如,我想做这样的事情:--MyLuaFileinclude(myCppDll.dll)functioncallCppFunctionFromDll()localresult=myCppFunctionFromDll(arg1,arg2)--Dosomethingwithresulthereend这样的事情可能吗? 最佳答案 尝试外星人:http://alien.luaforge.net/还有C/Invoke:http://www

c++ - 在 C++ 游戏引擎中使用 Lua 定义 NPC 行为

我正在使用C++开发一个游戏引擎,使用Lua处理NPC行为。我在设计过程中遇到了一些问题。对于需要多于一个框架来执行的所有事情,我想使用一个进程链表(它们是C++类)。所以这个:goto(point_a)say("Ohdear,thislawnlooksreallyscruffy!")mowLawn()会创建一个GotoProcess对象,它有一个指向SayProcess对象的指针,而SayProcess对象有一个指向MowLawnProcess对象的指针。这些对象将在NPC生成时立即创建,无需进一步编写脚本。这些对象中的第一个将在每一帧更新。完成后,它将被删除,下一个将用于更新。我通

c++ - 序列化 lua_State 以通过网络发送

我需要使用C++中的套接字将lua_state发送到服务器。我如何序列化lua_State以便它可以通过网络发送? 最佳答案 根据您的需要,您有多种选择。您可以尝试使用PlutoLibrary.它是一个“重量级”序列化库:Plutoisalibrarywhichallowsuserstowritearbitrarilylargeportionsofthe"Luauniverse"intoaflatfile,andlaterreadthembackintothesameoradifferentLuauniverse.Objectref

c++ - 从 lua 5.2 调用 c 函数会产生语法错误

我一直在尝试让lua脚本为我正在开发的一个小游戏工作,但lua似乎比它的值(value)更麻烦。经过大量谷歌搜索和头发撕裂,我设法让简单的脚本运行但很快就碰壁了。C函数好像并不想绑定(bind)到lua上,至少绑定(bind)后不想运行。g++顺利编译了c代码,但是lua解释器生成了这个语法错误:LUAERROR:bin/lua/main.lua:1:syntaxerrornear'getVersion'我的C(++)代码:#includestaticconstluaL_Reglualibs[]={{"base",luaopen_base},{"io",luaopen_io},{NUL

c++ - 使用 C API 的有序 lua 表循环

考虑以下lua表:foo={bar1={a=1,b=2,c="hello"},bar2={a=5,b=2,c="bbq"},bar3={a=76,b=13,c="pwnd"}}我正在尝试使用luaCAPI迭代此表以检索键名称bar1、bar2和bar3。我使用lua_next(L,-2)函数按照许多人的建议进行迭代,但问题是它以随机顺序返回元素。每次运行时顺序都会发生变化。我使用以下代码:for(lua_pushnil(L);lua_next(L,-2)!=0;lua_pop(L,1)){printf("%s\n",lua_tostring(L,-2));}大多数时候,输出是无序的,比

c++ - 函数需要抽象类型 A 的 C++ 对象。如何将 A 子类的 Lua 对象传递给它?

我想将派生自纯虚拟C++类的类的Lua对象传递给需要纯虚拟类的C++对象的函数。我该怎么做?我是lua和luabind的新手,请耐心等待。在C++中:structA{virtualvoidfoo()=0;};voiddo_something(A*a){a->foo();}在Lua中:class'MyA'(A)....functionMyA:foo()print('hi')end再次在C++中:...//somehowcreateaninstanceofMyAclassandnamedmyA//How?//Maybetheresultofacallto"MyA()"?do_somethi

c++ - 如何从 C++ 读取 Lua 表返回值

我有一个返回表(包含字符串集)的Lua函数该函数使用此代码运行良好:lua_pushstring(lua,"funcname");lua_gettable(lua,LUA_GLOBALSINDEX);lua_pushstring(lua,"someparam");lua_pcall(lua,1,1,0);该函数返回一个表。我如何从我的C++代码中读取它的内容? 最佳答案 如果你问如何遍历结果表,你需要lua_next(该链接还包含一个示例)。正如egarcia所说,如果lua_pcall返回0,则可以在堆栈顶部找到函数返回的表。

c++ - LuaBridge 和成员函数

我今天刚刚下载了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