問題なくデバッグ モードで動作する 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 アプリケーションからの起動の違いは何ですか?