• ベストアンサー

ハンドルからインスタンス?を取得したいのですが

CreateWindowExを使いたいのですが 途中でインスタンス?(でいいのかな?)を指定するところが あるのですがどうしていいか困っています。 GetWindowLong(HWND,GWL_HINSTANCE); でとれるのかな?と思うのですが 返す値がLongです インスタンスにキャストすることなどできるのでしょうか? どのようにしたらいいのでしょうか? インスタンス自身もあまり意味が....... よろしくお願いいたします

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

  • ベストアンサー
  • hurce
  • ベストアンサー率66% (2/3)
回答No.1

(HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE) でよいです。 HINSTANCEもLONGも32bitの変数だからキャストしてもだいじょうぶです。

gotyan
質問者

お礼

ありがとうございます 同じLONG値なんですねやってみます

その他の回答 (1)

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.2

HINSTANCEはexe,dllがロードされた先頭アドレスです。 仮想アドレスなので大抵いつも同じ値になっていると思います。 あと、同じ32bitだからキャストしてもよいというわけではなく、GetWindowLong(HWND,GWL_HINSTANCE)がキャストして使用されることを想定したものであるのだとおもいます。

gotyan
質問者

お礼

ありがとうございます インスタンスって先頭のアドレスだったんですね 勉強になります

関連するQ&A