したがって、32ビットプログラムのアドレス可能なメモリスペースは4ギガバイトです。それぞれ、64ビットアプリケーションでは、最大18エクサバイトのアドレス指定可能なスペースがあります。
kernel32.dll APIには、プログラムのヒープやメモリに関するさまざまなメソッドがあります。
したがって、私の現在の理解では、たとえばHeapAllocを呼び出して、割り当てる必要のあるメモリ量を渡すと、割り当てられたメモリスペースのアドレスへのポインタが返されます...(ここで間違っている場合は修正してください)けれど。)
これにwin32-api関数を使用する利点は、ロードされたDLLなどの他のコンポーネントをどこに配置するかをWindowsが最もよく知っていることです。だから私は尋ねています...
DLLファイルのメモリ内の固定位置はありますか?32ビットの場合は通常メモリスペースの上半分(0x80000000以上)であるとどこかで読んだと思いますが、それが本当だとしても、64ビットアプリケーションの位置はどうなるでしょうか。
また、Windowsに最初に割り当てさせずに、メモリへのポインタを自由に使用することはできませんか?副作用は何でしょうか?
私はこのテーマに少し慣れていないので、助けやヒントをいただければ幸いです。=)