解決済みになっていますがうっすら不安なのでひと言…
インスタンス ハンドルは、モジュール ハンドルと同じものです。
ですから、インスタンス ハンドル(HINSTANCE)を要求する関数にモジュール ハンドル(HMODULE)を渡すことができますし、逆も同様に可能です。
ひとつの EXE ファイルが実行されるときには、複数の DLL ファイルも同時にロードされます。
自動的にロードされる場合もあるし、LoadLibrary で明示的にロードする場合もあります。
LoadLibrary 等の関数の戻り値であり、メモリ上にロードされている DLL を識別する値がモジュール ハンドルです。
(さらに踏み込んで言えば、モジュール ハンドルは DLL がメモリ上に存在する位置を表すポインターでもあります)
実行時には EXE も DLL と同じ仕組みでメモリ上にロードされます。
DLL の場合はモジュール ハンドル、EXE の場合はインスタンス ハンドルと呼び分けているだけです。
「『現在の』インスタンス ハンドル」という言い方は歴史的な事情によるものです。
WinMain の引数には hPrevInst とかいうものもあり、昔はこれが「以前のインスタンス ハンドル」でした。
現在は hPrevInst は常に NULL になるので、インスタンス ハンドルは hCurInst が「唯一のインスタンス ハンドル」です。
従って「現在の」という言い回しに意味はありません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/17 08:15
2016/07/17 09:28
2016/07/17 09:39