lua不做字符串 我试图让Lua 5.1执行一条线,这只是对我的C++函数的一个调用:代码>攻击” >我不明白为什么它不能工作,有人指出错误吗?
这是攻击功能:lua不做字符串 我试图让Lua 5.1执行一条线,这只是对我的C++函数的一个调用:代码>攻击” >我不明白为什么它不能工作,有人指出错误吗?,c++,lua,C++,Lua,这是攻击功能: static int Assail(lua_State *L) { cout << "test" << endl; return 1; } 任何帮助都是值得赞赏的。 < P>因为你在C++中写这个名字,名字Mangle被应用到函数中,所以它在最终的可执行文件/库中有一个与Lua预期不同的特殊名称。您可以通过使用extern关键字将其链接更改为C来解决此问题: extern "C" int Assail(lua_State *L); ex
static int Assail(lua_State *L)
{
cout << "test" << endl;
return 1;
}
任何帮助都是值得赞赏的。
< P>因为你在C++中写这个名字,名字Mangle被应用到函数中,所以它在最终的可执行文件/库中有一个与Lua预期不同的特殊名称。您可以通过使用extern
关键字将其链接更改为C来解决此问题:
extern "C" int Assail(lua_State *L);
extern "C" int Assail(lua_State *L)
{
// code here
}
因为你在C++中写这个名字,名字Mangle被应用到函数中,所以它在最终的可执行文件/库中有一个与Lua预期不同的特殊名称。您可以通过使用
extern
关键字将其链接更改为C来解决此问题:
extern "C" int Assail(lua_State *L);
extern "C" int Assail(lua_State *L)
{
// code here
}
@迪恩,不客气。当你能接受这个答案时,请接受它。@Dean不客气。当你能够接受这个答案时,请接受这个答案。出了什么问题?无论如何,请检查
luaL\u dostring
的返回代码。最后,请注意,Assail
可能应该返回0,因为它不会将任何内容推送到堆栈上。要想获得惊喜,请尝试s=Assail(10,20);打印
。出了什么问题?无论如何,请检查luaL\u dostring
的返回代码。最后,请注意,Assail
可能应该返回0,因为它不会将任何内容推送到堆栈上。要想获得惊喜,请尝试s=Assail(10,20);打印
。