二重起動時のメッセージボックスについて

解決


ひで  2004-12-24 18:37:04  No: 55796

宜しくお願いします。

環境:
  VC++.NET 2003
  .NET framwork(フォームアプリケーション.NET)

現在次のように二重起動を防止していますが、二重起動時に
メッセージボックスを出したいのですが、うまくいきません。
何か方法はないでしょうか。

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
  System::Threading::Thread::CurrentThread->ApartmentState = System::Threading::ApartmentState::STA;

  Mutex *m = new Mutex(false, "App");
  if (m->WaitOne(0, false) == false)
  {
    // ここをMessageBoxにしたい
    System::Diagnostics::Debug::WriteLine("App");
  }
  else
  {
    Application::Run(new Form1);
  }
  GC::KeepAlive(m);
  return 0;
}

どうか宜しくお願い致します。


シャノン  2004-12-24 19:09:06  No: 55797

> メッセージボックスを出したいのですが、うまくいきません。

どう「うまく行かない」のか書いていただかないと、答えようがありません。
察するに

MessageBox::Show( なんたらかんたら );

と書いたとき、MessageBox が windows.h の中で MessageBoxA に #define されるので、

MessageBoxA::Show

と解釈されてコンパイルエラーになるんでしょうか。

main の前に

#if defined( MessageBox )
#undef MessageBox
#endif

とでも書いておいてください。

#これだから MC++ は嫌なんだ…


ひで  2004-12-24 20:44:06  No: 55798

言葉足らずで申し訳ありませんでした。
おっしゃられるとおりです。

解決することがでました。どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加