Lua无法处理字符串。

我试图让 lua 5.1 执行一个调用我 C++ 函数 "Assail" 的行,但我不明白为什么它不起作用,能有人指出错误吗?

这是 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);

任何帮助都将不胜感激。

点赞
用户88888888
用户88888888

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

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

extern "C" int Assail(lua_State *L)
{
    // 代码在这里
}
2013-01-19 16:48:31