• ベストアンサー

1つだけしか起動しないアプリを作りたい

下のようにして1つだけしか起動しないアプリを以前(Borland C++4.0で)作っていてうまく動いていたのですが 無償Borland C++5.5ではうまくいきません 調べてみるとhPIが2つ目以降のクローンについても0なのです hPIが使えないとすると他にどんな方法があるのでしょうか? WINAPI WinMain(HINSTANCE hI,HINSTANCE hPI,LPSTR lpszCP,int nCS) { WNDCLASS wc; HWND hW; MSG ms; if(hPI!=NULL)return(0);

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

  • ベストアンサー
noname#4252
noname#4252
回答No.2

ミューテックスを使用するならば OpenMutex()しないで、CreateMutex()の戻り値とGetLastError()で判断するべき。

参考URL:
http://techtips.belution.com/ja/vc/0025/
nubou
質問者

お礼

まんまのリンクありがとうございました ミューテックスを使うのが常道になっているのですね

その他の回答 (1)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

Windows95 から WinMain の hPrevInstance は常に NULL です。 こういう場合には、Mutex を使います。 きっと、こういう感じ。 OpenMutex(~ アプリをあらわす一意な文字列); if (オープンできたら) {   /* 別のアプリがあるはずなので */   多分、OpenMutex の後始末をして   return 0; } else {   CreateMutex(~ アプリをあらわす一意な文字列); } メッセージループ ReleaseMutex() # 細かいところは調べてね

nubou
質問者

お礼

早い回答ありがとうございました

関連するQ&A