問題タブ [virtualalloc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
354 参照

python - 64 ビット マシンで 32 ビット未満の VirtualAlloc アドレスを適用する

メモリに特定のスペースを割り当てる必要があり、VirtualAllocこれに使用しています。VirtualAllocただし、常に 33 ビット未満であるにもかかわらず、 が 32 ビットを超えるアドレスを返すことにますます気づきました。その結果、データをこのメモリ アドレスにコピーすると、コンピューターがクラッシュして BSOD が発生します。

64 ビットの Windows と 64 ビットの Python を使用しています。データをメモリにコピーするプログラムは 32 ビットしか扱えないのではないかと思います。VirtualAllocアドレスを 32 ビット以内で提供することを強制する方法はありますか?

私はPython、具体的にはctypesを呼び出すパッケージを使用していVirtualAllocます。以下のコードを参照してください。このコードを複数回実行するとアドレスが変化するため、以下の関数を繰り返し呼び出すと最終的に 32 ビット未満のアドレスになります。ただし、問題の原因とフェイルセーフな解決策を探しています。どんな助けでも大歓迎です。

を使用して後でメモリを解放することに注意してくださいVirtualFree