这是我第一次尝试将发布版本与 Visual C++ 2005 一起使用,似乎肯定存在一些差异。
我目前的错误是:
Unhandled exception at 0x6ef7d628 (msvcr80d.dll) in <program_name>:
0xC0000005: Access violation reading location 0x6c2e6769.
我查看了调用堆栈,结果发现传递给我制作的静态库函数的字符串给出了“Bad Ptr”,我不知道为什么。在调试版本中工作得很好......
这是有问题的行:
int main()
{
static Script luaScript("config.lua");
Script 只是我制作的一个处理 lua 脚本文件的类。它是静态的,因为我希望它是一个单例,因此任何代码都可以访问它。
脚本构造函数:
Script::Script(const string &filename)
{
luaState = lua_open();
scriptFilename = filename; // unhandled exception occurs here; Intellisense
// identifies filename as a <Bad Ptr>
// works perfectly fine in debug
}
我想这可能是因为库也处于调试模式,但是当我尝试使用 Release 时,我似乎无法编译它。
fatal error C1010: unexpected end of file while looking for precompiled header.
Did you forget to add '#include "stdafx.h"' to your source?
我对那个文件有点熟悉,但是为什么我的静态库的发布版本需要它呢?没有在调试中要求它。
好的,去获取 stdafx.h 文件,然后......一个新的错误出现了!:
fatal error C1083: Cannot open precompiled header file:
'Release\Script.pch': No such file or directory
好吧,除了“Visual C++ 2005 到底想让我为发布版本做什么!?”之外,很难找到所有这些问题的核心问题。
我希望有人可以提供帮助。谢谢你。