当我尝试从C ++(通过luabind)运行“运行”功能(在lua中定义)时,我收到以下错误:
Game_Launcher.exe中0x767BC41F处的未处理异常:Microsoft C ++异常:luabind ::内存位置错误0x001BF8B8。
使用一些try / catch技巧我得到的消息略少:
表达式:lua运行时错误
表达式:运行
local function Run(self)
self.ticks = self.ticks + 1
end
return {
ticks = 0,
Run = Run,
}
void ScriptComponent::Initialize()
{
// I pipe everything through a filesystem, so the script must be loaded as a string first
String fileData;
fileSystem->LoadFromFile("myscript.lua", filedata);
int err = lual_loadstring(L, fileData);
luabind::object compiledScript(luabind::from_stack(L, -1));
lua_pop(luaState, 1);
luabind::object luaDataTable = compiledScript();
lua_pop(luaState, 1);
// Execute the run function
luaDataTable["Run"](luaDataTable);
}
我能说的最好,luaDataTable
是一张表并且有效。不确定我做错了什么!
答案 0 :(得分:0)
如果我删除它工作的第一个pop状态,我会出现,oops!