gpt4 book ai didi

c++ - lua不做字符串

转载 作者:行者123 更新时间:2023-11-28 00:50:23 25 4
gpt4 key购买 nike

我试图让 lua 5.1 执行一行,这只是对我的一个 c++ 函数 “Assail” 的调用 我不明白为什么它不起作用,任何人都可以指出出错误?

这是攻击函数:

static int Assail(lua_State *L)
{
cout << "test" << endl;
return 1;
}

我正在尝试像这样调用 do_string:

L = lua_open();
luaL_openlibs(L);
lua_register(L, "Assail", Assail);
luaL_dostring(L, "s = Assail()");
lua_close(L);

感谢任何帮助。

最佳答案

由于您是用 C++ 编写的,因此函数会应用名称重整,因此它在最终的可执行文件/库中会有一个不同于 Lua 期望的特殊名称。您可以通过使用 extern 关键字更改其与 C 的链接来解决此问题:

extern "C" int Assail(lua_State *L);

extern "C" int Assail(lua_State *L)
{
// code here
}

关于c++ - lua不做字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14416448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com