当我为调试Lua编译程序时,运行得很好,但为什么我要为发布版编译它,我得到了一个c0000005错误
When I compile my program for Debugging the Lua runs fine but why I compile it for release I get a c0000005 error
我正在为SDL项目使用LUA。我从这里下载了预编译的LIB和DLL文件(http://sourceforge.net/projects/luabinaries/files/5.2/Windows%20Libraries/Dynamic/)(lua-5.2_Win32_dll10_lib.zip),并已将其纳入我的项目中。当我构建调试构建时,应用程序会100%正常运行。当我将其设置为释放模式并在Visual Studio中按下"播放"按钮时,它也会正常运行。
但是,如果我通过双击文件夹中的Release文件来运行它,我会得到错误c0000005和lua52.dll.
我正在运行MicroSoft Visual C++2010学习版。
我一直在删除行,直到它开始工作,导致错误的行是。
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();
}
}
任何设置错误或如何修复的想法。
0xc0000005是内存冲突。事实上,它可以在调试中工作,这意味着许多可能的事情。
- 内存没有初始化或设置正确(在调试中,它被初始化为0),因此字符串被终止
- 内存需求大于缓冲区所允许的(在调试中可以填充)
- 您的代码在调试中所做的事情与编译不同(#if等)
看看你的代码,我会看看:
为什么你检查错误,然后什么都不做?????
if (errfunc !=0) {
// What happens in here??????
}
lua_call函数在成功的情况下返回0,或者以下错误代码(在lua.h中定义):
LUA_ERRRUN:运行时错误。
LUA_ERRMEM:内存分配错误。对于这样的错误,Lua不调用错误处理程序函数。
LUA_ERRERR:运行错误处理程序函数时出错
我想你会发现你得到了一个LUA_ERRMEM
相关文章:
- std::is_base_of表示ctor编译错误
- Qt5:使用QCommandLineParser类时出现奇怪的编译错误
- 如何修复sfml c++代码编译错误
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- vscode下的Arduino代码出现意外编译错误
- 第三方 API 中的编译错误 - Visual Studio
- std::cout输出int时出现编译错误
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 提升图广度优先搜索前置编译错误
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 使用带有 ref 参数的成员函数创建线程时出现编译错误
- 我在C++中遇到了这个奇怪的编译错误
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- 使用 std::enable_if 限制派生类的模板参数时出现编译错误
- 现代OpenGL和GLEW Libraray的编译错误
- C++ 编译错误:意外的类型名称"字符串":预期的表达式
- C ++程序编译错误,找不到/访问文件
- 使用直接大括号初始化时,C++ 编译错误"声明末尾的预期";"
- 为什么传递非静态成员函数会导致编译错误?