我将Lua与c ++集成有一个简单的问题。 我在Visual Studio中有我的项目: http://i.stack.imgur.com/nNw6H.png
我运行lua_init()函数:
bool lua_init(std::string &luaScriptName){
// Create the Lua state. Explanation from Lua 5.1 Ref. Manual:
globalL = luaL_newstate(); // 5.1 OK - Lua 5.0 or lower will probably require different commands
if( globalL == NULL )
return false;
// Loads all Lua standard libraries
luaL_openlibs(globalL); // 5.1 OK - Lua 5.0 or lower will require different commands
// This lot below could be replaced with luaL_dofile, but that just does: luaL_loadfile(..) || lua_pcall(..), which gives no reporting of error messages etc.
int initError = luaL_loadfile(globalL,luaScriptName.c_str());
switch( initError )
{
case 0:
// The file loaded okay, so call it as a protected function - to stop fatal errors from exiting the program
lua_pcall(globalL,0,0,0);
break;
case LUA_ERRFILE:
std::cerr<<"Cannot find / open lua script file: "<<luaScriptName<<std::endl<<"Skipping Lua init."<<std::endl;
break;
case LUA_ERRSYNTAX:
std::cerr<<"Syntax error during pre-compilation of script file: " <<luaScriptName<<std::endl<<"Skipping Lua init."<<std::endl;
break;
case LUA_ERRMEM:
// Treating this as fatal, since it means other Lua calls are unlikely to work either
std::cerr<<"Fatal memory allocation error during processing of script file: " <<luaScriptName<<std::endl;
return false;
}
return true;
}
但不知道我得到了“无法找到/打开lua脚本文件:”错误
我应该以某种方式指出我的script.lua到Visual Studio吗?该文件位于项目目录中。
答案 0 :(得分:1)
您的代码将在二进制文件的位置,或在调试模式的目标目录中。因此,在执行二进制文件时,请检查您的lua文件是否可供二进制文件访问。如果它与您的源文件一致,当然,它无法访问。