LoadLibrary でモジュール (exe/dll) を読み込み、その中のバイナリ リソースのポインタを取得します。
次の 3 つの手順を使用する必要がある Microsoft のメモ:
- FindResource を使用して HRSRC を返す
- その HRSRC で LoadResource を使用し、HGLOBAL を返します
- LockResource を使用して HGLOBAL をロックし、最終的に必要なポインターを返します。
なぜMSがこのプロセスを奇妙に設計するのか理解できませんか?
resource の長さを検出する場合は、最初の step から返されたポインターで SizeofResource を使用する必要がありますが、 step2 および step3 から返されたポインターを入力することはできません。
これらの手順から出力されたポインター アドレスを確認すると、次の結果が得られました。
- LoadLibrary によってロードされたモジュールのアドレス範囲内のポインター アドレスのすべて。
- step2 と step3 のアドレスは同じです。
これらの関数が正確に何をするかを誰が説明できますか?