我正在使用LUA作爲SDL項目。我從這裏下載了預編譯的LIB和DLL文件(http://sourceforge.net/projects/luabinaries/files/5.2/Windows%20Libraries/Dynamic/)(lua-5.2_Win32_dll10_lib.zip),並將它合併到我的項目中。當我構建一個調試版本時,應用程序可以100%正常運行。當我將它設置爲釋放模式並在Visual Studio中按下播放按鈕時,它也可以正常運行。當我編譯我的程序進行調試時,Lua運行良好,但是爲什麼我編譯它用於發佈我得到一個c0000005錯誤
但是如果我通過在文件夾中雙擊運行釋放文件,我得到與lua52.dll錯誤c0000005。
我正在運行MicroSoft Visual C++ 2010 Express。
我經歷了刪除行直到它開始工作,並導致錯誤的行是。
void aiBrainmanager::run(string holdData){
int errfunc = 0;
int s;
int s = luaL_loadstring(L, holdData.c_str());
if (s==0) {
s = lua_pcall(L, 0, LUA_MULTRET, errfunc);
}
if (errfunc !=0) {
}
if (s !=0) {
aiBrainmanager::target->stopWorking();
}
}
任何想法,設置錯誤或如何解決它。
的信息實在是不夠的人猜測問題可能是什麼。在調試版本中,許多未初始化的變量可能會被設置爲0,而在發佈版本中,它們不會。我會首先檢查,並在問題出現的地方添加debug print/log語句,以便查看可能出錯的地方。您也可以使用調試器,但如果您不熟悉調試優化代碼可能很困難。 – 2012-04-07 04:10:03