退出程序时抛出异常(Ogre3d)

时间:2010-06-28 16:11:59

标签: c++ ogre3d

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

我知道这很少继续下去。我尝试了几种不同的东西:

  1. un程序没有做任何事情,也就是说,根本没有初始化Ogre Core。不会导致崩溃
  2. 除了创建Ogre root(与Ogre本身有关并且与我的代码无关)之外,运行程序时注释掉所有内容,导致同样的崩溃
  3. 运行以下程序,它是基本的,但仍会导致崩溃。 在我的程序运行完毕后返回0时发生崩溃
  4. #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()  
    

    崩溃Screencapture:
    link text

3 个答案:

答案 0 :(得分:3)

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

开始使用食人魔我强烈建议您关注并学习the tutorials

修改 可在此处找到ogre的visual studio项目模板:http://code.google.com/p/ogreappwizards/updates/list以便快速入门。

答案 1 :(得分:2)

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

我在使用重新安装窗户前大约3天浪费了。我的建议是,如果你有另一台计算机继续做你的工作,如果发生这样的事情而不是浪费时间,那就是这样做。如果你找到解决问题的方法,请告诉我:)

答案 2 :(得分:0)

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

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