当我退出程序时,我遇到了一个奇怪的异常。这从今天早上开始,我准备把头发拉出来。一旦我退出程序,Visual Studio 就会给出一个异常并在文件 crt0dat.c 的第 731 行停止(见附件截图)
我知道这没什么好继续的。我尝试了几种不同的方法:
- un 程序没有做任何事情,也就是说,根本没有初始化 Ogre Core。不会导致崩溃
- 运行程序,除创建 Ogre 根(与 Ogre 本身相关,与我的代码无关)之外的所有内容都注释掉,导致同样的崩溃
- 运行以下最基本的程序,仍然会导致崩溃。当我的程序完成运行时,在返回 0 后发生崩溃
#include "windows.h"
#include "OgreRoot.h"
/// --------------------------------------------
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
{
Ogre::Root* lRoot = new Ogre::Root();
delete lRoot;
lRoot = NULL;
return 0;
}
/// --------------------------------------------
由于我在 SVN 上拥有所有内容,因此我在笔记本电脑上运行了相同的项目,它运行时没有任何问题,并且退出时也没有任何问题。这让我相信我的视觉工作室在某个地方被破坏了。我卸载了 Visual Studio,然后重新安装了它,但问题仍然存在(当 VS 安装它时,它会遍布我的系统。无法包含它。有谁知道完全破坏 Visual Studio 安装的万无一失的方法?)。我的想法不多了,没有重新安装 Windows。我希望这里有人可以提供帮助。
调用栈:
048b0910()
ntdll.dll!775d9901()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!775edc30()
ntdll.dll!775edb7c()
kernel32.dll!76c67363()
> msvcr90d.dll!__crtExitProcess(int status=0) + 0x1b bytes C
msvcr90d.dll!doexit(int code=0, int quick=0, int retcaller=0) + 0x1d1 bytes C
msvcr90d.dll!exit(int code=0) + 0x12 bytes C
OgreFWGame.exe!__tmainCRTStartup() + 0x2a2 bytes C
OgreFWGame.exe!WinMainCRTStartup() + 0xf bytes C
kernel32.dll!76c63677()
ntdll.dll!775d9d42()
ntdll.dll!775d9d15()
崩溃屏幕截图:
链接文本