私の wxWidgets アプリケーションでは、コマンド ライン引数をチェックしています。見つかった場合は、アクションを実行してからウィンドウを閉じます。ただし、アプリケーションを適切に閉じることができないようです。3 などの終了コードでプログラムを終了したいです。wxApp::OnInit のコマンド ライン パラメータを確認するときに、単に を呼び出そうとしましたがexit(3)
、wxwidgets 内のどこかでメモリ リークが発生したため、これは不適切なようでした。 .
次に、終了コードを保存し、OnRun をオーバーライドしてそこに戻ろうとしましたが、そうすると、 のinit.cpp
行472
でクラッシュが発生しreturn wxTheApp->OnRun();
ます。
アプリケーションを閉じる必要があることを検出した後、wxApp からのカスタム終了コードを使用してアプリケーションを適切に閉じる方法を知っている人はいますか? もオーバーロードしようとしましたがwxApp::OnExit
、オーバーロードしていなくても呼び出されることはありませんOnRun
。
http://codepad.org/WYiOJq55のコード例は、何らかの理由でこの投稿でコードが許可されていないためです
コードの編集貼り付け:
int SomeApplication::OnRun()
{
if(mExitCode != 0)
{
ExitMainLoop();
return mExitCode;
}
else
return wxApp::OnRun();
}