• ベストアンサー

インスタンスハンドルは何の役に立つものですか?

C言語でWINDOWSのプログラムを作成したさい、WinMainの引数としてインスタンスハンドルが渡されます。 XPで作成したアプリケイションを複数同時に立ち上げると、インスタンスハンドルの値はすべて同じとなります。仮想メモリが導入される前のOSでは、異なる値になるようです。 仮想メモリを使う現在、インスタンスハンドルは何の役に立つのでしょうか。旧来からの書式を変えないためだけに存在するのでしょうか。

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

  • ベストアンサー
  • aris-wiz
  • ベストアンサー率38% (96/252)
回答No.1

16ビットWindows環境では、全てのプロセスが同じメモリ空間で 動作したため、各プロセスは互いに重なり合わないよう別のアドレスに ロードされ、プロセスごとにインスタンスハンドルは異なっていました 32ビットWindows環境でのインスタンスハンドルはプロセス内での モジュールを識別するためのもので、異なるプロセス間での やり取りに使われる物ではないため、同じプロセス内で重複しなければ 問題ないようです。 プロセス内でみれば一意ですがOS全体として見れば、 インスタンスハンドルの値は重複しても構わない為、 Win32環境ではプロセスを一意に識別することができません。 Win32環境でプロセスを特定する場合はプロセスIDやプロセスハンドル を使うことが殆どですし:-p

string
質問者

お礼

お礼遅くなり申し訳ございません。 大変よくわかりました。 ご回答ありがとうございました。

関連するQ&A