プログラムを終了すると、奇妙な例外が発生します。これは今日の朝から始まり、髪を抜く準備ができています。プログラムを終了するとすぐに、Visual Studio で例外が発生し、ファイル crt0dat.c の 731 行目で停止します (添付のスクリーンショットを参照)。
私はこれが続くことはほとんどないことを知っています。私はいくつかの異なることを試しました:
- つまり、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 のインストールを完全に破棄する確実な方法を知っている人はいますか?)。ウィンドウを再インストールするのが足りないので、アイデアが不足しています。ここの誰かが助けてくれることを願っています。
コールスタック:
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()
クラッシュ スクリーン キャプチャ:
リンク テキスト