1

我终于能够使用 C++ 让 Lua 与我的编译器一起运行。我现在尝试开始一些教程,第一个程序不会做任何事情。我下载了他们使用的代码,但它仍然什么也没做。然而没有错误。测试打印得很好,但我没有得到 luaL_dostring 的响应。我正在使用 v5.1.4-46。是否有可能我以某种不会导致错误的方式错误地安装它?我打印出 lua 状态的内存地址,这似乎可以正常工作。如果有人能给我一些示例代码来运行,我将不胜感激。

这是代码:

#include <lua.hpp>
#include <iostream>
#include <string>

using namespace std;

int main()
{
    lua_State *L = lua_open();
    luaL_openlibs(L);

    cout << "Test" << endl;

    luaL_dostring(L, "print(\"Hello from Lua!\n\")");

    lua_close(L);
    return 0;
}
4

1 回答 1

5

您的 dostring 语法会生成无效的 Lua 代码...“\n”在执行前被传递给 lua 解析器。你需要一个“\\n”......这样想。所以你的“luaL_dostring”错误代码实际上是一个语法错误。有趣的事...

您不应该将 dostring 用于测试之外。

于 2012-10-03T21:21:59.413 回答