您好我正在尝试让此代码正常工作
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”);
孔程序编译但后来不执行脚本或显示运行的lua脚本的任何视觉反馈 以前有人遇到过这个问题吗?并且知道为什么?**
答案 0 :(得分:8)
你似乎不理解一些事情。
luaL_loadfile
从文件加载脚本,编译它,但它不运行它。它只是将它推到Lua堆栈上,这样你就可以使用你认为合适的任何参数来运行它。
luaL_dofile
从文件加载脚本,编译它,和运行它,从而将脚本弹出堆栈。
如果出现错误,luaL_loadfile
将返回错误代码,说明错误类型。如果出现错误,它还会将错误消息推送到Lua堆栈。如果没有错误发生,则返回0.
类似地,如果发生错误,luaL_dofile
将返回1,并且错误消息将在Lua堆栈上。
您应该始终检查这些函数的返回值,以查看是否发生了错误,并采取相应的措施。