電子書籍の厳選無料作品が豊富!

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

A 回答 (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: ダイアログが <キャンセル> で消された時のコードを
      // 記述してください。
    }
  }
といった具合にすればいいのではないかと思いますよ
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/12/23 15:42

MFCでどのタイプで開発しているのでしょう MDI/SDI/ダイアログベース


そのファイル読み込みはどの時点でしていますか
AppクラスのInitInstanceとか 具体的な場所を明示しましょう

この回答への補足

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

補足日時:2007/12/23 04:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!