Swig Lua来自解释器的对象

时间:2019-02-06 08:40:50

标签: c++ c lua swig

例如,有时我会从与swig不相关的C ++代码中直接从解释器获取lua变量

lua_getglobal( mpLuaState, varname );
double var = lua_tonumber(mpLuaState, -1);
lua_setglobal( mpLuaState, varname );

当我尝试使用

拍摄一些自定义对象时
void * = lua_touserdata(mpLuaState, -1);

我意识到SWIG使用SWIG_NewPointerObj包装了自定义对象。

有什么方法可以获取指向我的自定义对象的指针值?

@edit

我刚刚想出了解决此问题的方法。 我在使用Swig导出到lua的类中添加了方法,

unsigned long GetPtr();

正在返回

return (unsigned long)this;

,然后当我想从C ++代码中获取它(与Swig不相关,而仅指向Lua_state*的指针)时, 使用

运行脚本

luaL_doString("ptrVal = MyObj:GetVal")

,然后将其作为普通数字并将其解析为void*

这只是解决方法,我想正确地做。 有什么建议么?

0 个答案:

没有答案