2

当我退出程序时,我遇到了一个奇怪的异常。这从今天早上开始,我准备把头发拉出来。一旦我退出程序,Visual Studio 就会给出一个异常并在文件 crt0dat.c 的第 731 行停止(见附件截图)

我知道这没什么好继续的。我尝试了几种不同的方法:

  1. un 程序没有做任何事情,也就是说,根本没有初始化 Ogre Core。不会导致崩溃
  2. 运行程序,除创建 Ogre 根(与 Ogre 本身相关,与我的代码无关)之外的所有内容都注释掉,导致同样的崩溃
  3. 运行以下最基本的程序,仍然会导致崩溃。当我的程序完成运行时,在返回 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()  

崩溃屏幕截图:
链接文本

4

3 回答 3

3

这不是你应该如何初始化和使用 Ogre。很可能缺少初始化工作是导致您崩溃的原因。

要开始使用 ogre,我强烈建议您遵循并从教程中学习

编辑: 食人魔的视觉工作室项目模板可以在这里找到:http ://code.google.com/p/ogreappwizards/updates/list快速开始。

于 2010-06-28T16:18:13.650 回答
2

感谢大家对这个问题的帮助。我最终重新安装了 Windows(我尝试卸载 Visual Studio 并重新安装它,但是在卸载 VS 时出现了问题[我按照微软的说明进行操作],它会拒绝再次安装 [安装程序会崩溃])。我希望他们可以轻松卸载 Visual Studio。

在我求助于重新安装 Windows 之前,我浪费了大约 3 天的时间。我的建议是,如果您有另一台计算机可以继续工作,那么如果发生这种情况,也不要浪费时间。如果您确实找到解决问题的方法,请告诉我:)

于 2010-07-16T19:04:47.903 回答
0

我最近在 Visual Studio 2010 中设置了 ogre,它拒绝正常工作,直到我复制了正确的 DLL - 我一直在使用从 Visual Studio 2008 中稍旧版本的 ogre 编译的集合。这听起来像是整个 ogre 编译或DLL 可能已通过 SVN 复制过来,这可能会导致奇怪的问题。

无论如何,希望它有所帮助。

于 2010-06-28T18:37:59.853 回答