你好,我正在尝试让这段代码工作
extern "C"
{
#include <lua.h>
#include "lualib.h"
#include "lauxlib.h"
}
#include "glew.h"
#define GLEW_STATIC
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include <stdlib.h>
#include <iostream>
#include <fstream>
////////////////////////
////////////////////////
test.h
void Test(void)
{
int status;
**//The Lua Interpreter**
lua_State *L = lua_open();
**//Open Lua Libarys**
luaL_openlibs(L);
**//Run Lua Script**
status = luaL_loadfile(L,"Test.lua");
printf( "actually getting to this point!");
getchar();
//Close Lua
lua_close(L);
}
这被命名为 test.lua 这是我的 lua 文件
print"Whats your name?"
function sleep(n)
end
这行不通:(
lual_dofile(L,"Test.lua");
hole 程序编译但不执行脚本或显示 lua 脚本运行的任何视觉反馈 有没有人遇到过这个问题?并且知道为什么?**
最佳答案
你好像有几件事不明白。
luaL_loadfile
从文件加载脚本,编译它,但它不 运行它。它只是将它插入 Lua 堆栈,以便您可以使用您认为合适的任何参数运行它。
luaL_dofile
从文件加载脚本,编译它,并运行它,从而将脚本从堆栈中弹出。
在出现错误的情况下,luaL_loadfile
将返回一个错误代码来解释错误类型。如果出现错误,它还会将错误消息推送到 Lua 堆栈。如果没有错误发生,则返回 0。
类似地,luaL_dofile
如果发生错误会返回1,错误信息会在Lua栈中。
您应该始终检查这些函数的返回值以查看是否发生了错误,并采取相应措施。
关于c++ - lual_dofile();不会用 C++ 和 Lua 加载脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892762/