• ベストアンサー

MFCでの終了処理

MFCでファイルを読み込み、画面表示するプログラムを作成しています。 読込ファイルにいくつかのバージョンがあり、旧バージョンを読み込んだ場合は旧バージョンのexeをShellExecuteで呼び出しています。 旧バージョンのファイルを読み込んだ場合バージョンチェック後旧バージョンのexeを呼び出し、起動中のプログラム(現在のバージョン)を終了しようと思っています。(ダイアログ表示等される前です。) その場合現在動いているプログラムはどのように終了させるべきでしょうか? VC++ではexitを使用しないような事をいくつかのページでみましたが、 exitに代わる方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.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: ダイアログが <キャンセル> で消された時のコードを       // 記述してください。     }   } といった具合にすればいいのではないかと思いますよ

hormon_max
質問者

お礼

ありがとうございました。 予定していた動作にすることができました。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

MFCでどのタイプで開発しているのでしょう MDI/SDI/ダイアログベース そのファイル読み込みはどの時点でしていますか AppクラスのInitInstanceとか 具体的な場所を明示しましょう

hormon_max
質問者

補足

MFCのダイアログベースで作成しています。 ファイルの読込みはAppクラスのInitInstanceから 別の関数を呼び出してそこで読込しています。 現行バージョンならそのまま呼び出した関数でデータを加工します。 旧バージョンならそこで旧バージョンのexeを呼び出して終了処理を しようと思っています。

関連するQ&A