Visual Studio Express 2010 で C++ を使用して OpenGl プログラムをコーディングしているときに、奇妙な問題が発生しました。
私が使用するもの: Windows 7 64 ビット、OpenGl 4.x
私のパートナーが使用するもの: Windows XP 32 ビット、Visual Studio Express 2010、OpenGl 2.x
今までは、モデルの頂点を描いただけで、両方のシステムで問題なく動作しました (非推奨ですが、まだ初心者です)。現在、彼は 3D メッシュをインポートしてアニメーションを作成するためのライブラリを含めています。彼にとってはすべてうまくいきますが、私は得ます
Ant Simulation.exe の 0x0055f838 での初回例外: 0xC0000005: アクセス違反の読み取り場所 0x00bb0000。
Ant Simulation.exe の 0x0055f838 で未処理の例外: 0xC0000005: アクセス違反の読み取り場所 0x00bb0000。
デバッガーを使用して、問題を次の行まで追跡しました
glDrawArrays(GL_QUADS,0,n_data);
コードをキャッチしようとしましたが、何もトリガーされません。奇妙なことに、昨日はデバッガーがクラッシュするまでこの行を2〜3回調べることができましたが、今日は直接クラッシュします。昨日、n_dataが毎回同じであることを確認しました。Windows で *.exe を実行すると、クラッシュします (以下のエラー コード)。パートナーから *.exe が送られてきても、通常は動作しませんが、一度起動できました。他のウィンドウでエラーを再現しました。Linux 64bit で試してみましたが、問題ありません。互換モードで実行してみましたが、問題は変わりません (まだクラッシュします)。
私は周りを検索して、これを見つけました
: -form-or-wpf-application.aspx?Redirected=true
これを正しく理解したかどうかはわかりません。キャッチできない例外がありますが、これはアプリケーションを強制終了します - しかし、他のシステムがこの例外に問題を抱えていないのはなぜですか?
リンクに記載されている方法で解決しようとしましたが、VS Express には初回例外をスローするメニューがないようです。私はVS 2012を入手しようとしますが、それでも知りたいのですが、これは完全にWindowsの問題ですか、それともコードの問題によってクラッシュが発生する可能性がありますか(リンクのコメントの1つで提案されているように)? また、実際に何が起こっているのかについての説明もいただければ幸いです...
*.exe を実行すると、次のエラーが表示されます。
問題イベント名: APPCRASH
アプリケーション名: Ant Simulation.exe
アプリケーション バージョン: 0.0.0.0
アプリケーション タイムスタンプ: 511d99a3
障害モジュール名: StackHash_0a9e
障害モジュール バージョン: 0.0.0.0
障害モジュール タイムスタンプ: 00000000
例外コード: c0000005
例外オフセット: 0037f278
OS バージョン: 6.1.7601.2.1.0.256.48
ロケール ID: 1031
追加情報 1: 0a9e
追加情報 2: 0a9e372d3b4ad19135b953a78882e789
追加情報 3: 0a9e
追加情報 4: 0a9e372d3b4ad19135b953a78882e789