- ベストアンサー
MFCでの終了処理
MFCでファイルを読み込み、画面表示するプログラムを作成しています。 読込ファイルにいくつかのバージョンがあり、旧バージョンを読み込んだ場合は旧バージョンのexeをShellExecuteで呼び出しています。 旧バージョンのファイルを読み込んだ場合バージョンチェック後旧バージョンのexeを呼び出し、起動中のプログラム(現在のバージョン)を終了しようと思っています。(ダイアログ表示等される前です。) その場合現在動いているプログラムはどのように終了させるべきでしょうか? VC++ではexitを使用しないような事をいくつかのページでみましたが、 exitに代わる方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ダイアログベースなら CXXDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: ダイアログが <OK> で消された時のコードを // 記述してください。 } else if (nResponse == IDCANCEL) { // TODO: ダイアログが <キャンセル> で消された時のコードを // 記述してください。 } となっている部分を // ファイル入力部分 MyFileIO(ファイル名); // バージョン判断 if ( nVersion != 2 ) { // ShellExecuteでの起動 } else { CXXDlg dlg; m_pMainWnd = &dlg; // ここでダイアログが表示されます int nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: ダイアログが <OK> で消された時のコードを // 記述してください。 } else if (nResponse == IDCANCEL) { // TODO: ダイアログが <キャンセル> で消された時のコードを // 記述してください。 } } といった具合にすればいいのではないかと思いますよ
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
MFCでどのタイプで開発しているのでしょう MDI/SDI/ダイアログベース そのファイル読み込みはどの時点でしていますか AppクラスのInitInstanceとか 具体的な場所を明示しましょう
補足
MFCのダイアログベースで作成しています。 ファイルの読込みはAppクラスのInitInstanceから 別の関数を呼び出してそこで読込しています。 現行バージョンならそのまま呼び出した関数でデータを加工します。 旧バージョンならそこで旧バージョンのexeを呼び出して終了処理を しようと思っています。
お礼
ありがとうございました。 予定していた動作にすることができました。