2

問題なくデバッグ モードで動作する Qt アプリケーションがあります。2日以来、リリースモードで動作させようとしています。プロジェクトのプロパティをいくつか変更した後、エラーなしでコンパイルできました。しかし残念なことに、メイン メソッドに到達する前にアプリケーションがクラッシュします。それが私の環境です:

  • MS対2010
  • Qt 4.8.4
  • Qwt 6.0.0

これが関連しているかどうかはわかりませんが、VS 用の Qt プラグインもインストールし、Qt Designer を使用して GUI を作成しました。

デバッグ モードで述べたように、問題はありません。Visual Studio からリリース バージョンを起動すると、次のエラーが発生します。

「デバッグ」できる最後の関数は、crtexe.c にあるメソッド「__declspec(noinline) int __tmainCRTStartup」内で呼び出される「WinMain」メソッドです (正直なところ、これが何であるかはわかりません)。コール スタックは次のようになります。

ntdll.dll!77c415de()    
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 
ntdll.dll!77c415de()    
ntdll.dll!77c3014e()    
msvcr100.dll!718f0269()     
msvcr100.dll!718f233b()     
msvcr100.dll!718f233b()     
msvcr100.dll!718f233b()     
QtCore4.dll!5b2cfc49()  
QtGui4.dll!57bf54ea()   
Application.exe!__tmainCRTStartup()  Line 547 + 0x1c bytes  C
kernel32.dll!754633aa()     
ntdll.dll!77c59ef2()    
ntdll.dll!77c59ec5()    

現時点では、この問題で完全に迷っています。さらに何を試すべきかわからない...

私はプログラムを縮小しようとし、完全な main 関数をコメントアウトしました。しかし、結果は同じ動作でした。私が言ったように、メイン関数が呼び出される前でもエラーが発生します。また、すべての最適化をオフにして再コンパイルしました...何も変更しませんでした。

私を完全に困惑させているのは、コマンドプロンプトから「Application.exe」を呼び出すと「機能する」という事実です(これもクラッシュしますが、実行中にずっと後で)。変ですね。コマンド プロンプトからの起動と Visual Studio アプリケーションからの起動の違いは何ですか?

4

2 に答える 2

0

問題は QT ではなく、ソース コードにあります。「0xC0000005: アクセス違反読み取り位置 0x0000000c」は、間違ったメモリ位置にアクセスしようとしていることを意味します。

配列、ans ポインターをチェックしてください。

于 2013-03-07T13:17:41.673 に答える