基本上我正在使用fstream读取文件的内容,然后将其转换为const char *类型。我将这个提供给Lua,Lua会对此做些什么。然而,这不起作用。如果我做了什么工作:
const char* data = "print('Hello world')";
luaL_pushstring(L, data);
luaL_setglobal(L, "z");
它们都是const char *类型,它们都是相同的字符串(例如,我比较了两个长度)。除了一个工作,另一个工作。我很困惑。这里有什么帮助?这是代码:
std::string line,text;
std::ifstream in("test.txt");
while(std::getline(in, line))
{
text += line;
}
const char* data = text.c_str();
luaL_pushstring(L, data);
luaL_setglobal(L, "z");
这是Lua代码:
loadstring(z)()
答案 0 :(得分:1)
要诊断这一点,您可能想要了解更多关于Lua的想法。我将Lua一边改为assert(loadstring(s))()
。如果loadstring
失败,您当前的代码最多会在尝试调用nil
时打印错误。对于序列中的assert()
,对nil
的调用将被更多信息错误替换为错误。
答案 1 :(得分:0)
在推送值之前,您不必设置全局吗?无论如何,怎么了,卡莫:P