3

プロセス間で共有されるメモリ プールを作成し (たとえばCreateFileMappingINVALID_HANDLE_VALUEWin32 の場合)、そのメモリのチャンクをヒープとして使用することは可能ですか?

new/delete演算子 (またはmalloc/ free) がそのチャンクからメモリを割り当て/解放する (そして通常のヒープ管理を行う) ことを望みます。

ありがとう。

編集:私の本当の問題は単純です:今のところ、new演算子を使用してさまざまな大きな一連の構造体を通常どおり割り当てますが、プロセスが閉じた後もこれらの構造体を保持したいと考えています。したがって、メインプロセスが閉じたときにメモリを保持することだけがほぼ唯一の機能である別のプロセスを作成したいと思います。

そのためにCreateFileMapping、補助プロセスで共有メモリのチャンクを作成し、メイン プロセスで、プロセスのヒープの代わりにそのチャンクを使用するように構造体の割り当てに使用することを伝えnewます。delete

メイン プロセスが再起動された後に構造を復​​元するには、すべてのポインターに一定量を追加しMapViewOfFileます。

4

1 に答える 1

1

コメントしてくれた人に感謝します。

私自身の質問に答える:

私は共有メモリをヒープにすることをあきらめました.構造の固定スナップショットを他のプロセスによって割り当てられた共有メモリに保存するだけCreateFileMappingです. と を使用して、プロセスが再起動されたときに逆のことをOpenFileMapping行いMapViewOfFileます。

于 2012-10-17T01:28:42.700 に答える