{using Qt 4.7.0, Windows Xp, Visual Studio 2005}
こんにちは、私は Qt コンソール プロジェクトを開発して、プロトコルを実装し、意図した製品でかなりの時間をかけて実行しています。しかし、最近問題が発生しました。アプリケーションはシャットダウンすることを意図していないため、アプリケーション内から終了するものは何もありません。それが行うことは、開発されたプロトコルでクライアント接続ごとに新しいスレッドを実装し、クライアントが切断されるとスレッドを終了し、新しい接続のポーリングを続行することです。これはすべて問題ありません。テスターがデバッグ モードで実行すると、コンソール ウィンドウがポップアップし、進行中のアクティビティのログが表示されます。問題は、このコンソール ウィンドウを手動で閉じると、エラーが発生することthe instruction at 0xwhatever referenced memory at 0xwhatever which could not be read. Click Ok to terminate
です。この問題を特定しましたが、シャットダウン関数の 1 つが呼び出されないために発生します。
このような方法でアプリケーションが閉じられるたびに、このカスタム シャットダウン関数を呼び出すにはどうすればよいですか? (ちなみに、タスク マネージャーで「プロセスを終了する」場合、この問題は発生しません。そのため、コンソール ウィンドウがポップアップせず、タスクを使用するしか方法がないため、リリース モードのシャットダウンは常に問題ありません。マネジャー)
ps:QCoreApplication's aboutToQuit()
シグナルを使用して、上記のシャットダウン関数を呼び出すカスタム スロットを呼び出してみました。これはうまくいかないようです。このようなアプリケーションのシャットダウン イベントでシグナルが発生するかどうかはわかりません。