- ベストアンサー
インスタンスハンドルは何の役に立つものですか?
C言語でWINDOWSのプログラムを作成したさい、WinMainの引数としてインスタンスハンドルが渡されます。 XPで作成したアプリケイションを複数同時に立ち上げると、インスタンスハンドルの値はすべて同じとなります。仮想メモリが導入される前のOSでは、異なる値になるようです。 仮想メモリを使う現在、インスタンスハンドルは何の役に立つのでしょうか。旧来からの書式を変えないためだけに存在するのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
16ビットWindows環境では、全てのプロセスが同じメモリ空間で 動作したため、各プロセスは互いに重なり合わないよう別のアドレスに ロードされ、プロセスごとにインスタンスハンドルは異なっていました 32ビットWindows環境でのインスタンスハンドルはプロセス内での モジュールを識別するためのもので、異なるプロセス間での やり取りに使われる物ではないため、同じプロセス内で重複しなければ 問題ないようです。 プロセス内でみれば一意ですがOS全体として見れば、 インスタンスハンドルの値は重複しても構わない為、 Win32環境ではプロセスを一意に識別することができません。 Win32環境でプロセスを特定する場合はプロセスIDやプロセスハンドル を使うことが殆どですし:-p
お礼
お礼遅くなり申し訳ございません。 大変よくわかりました。 ご回答ありがとうございました。