CreateSharedMemory関数(Windows)の使用例はありますか?共有内部メモリクライアント/サーバーソフトウェアのシナリオでは、関数へのサーバー入力パラメーターはMaxSize
とだけInitialSize
です。では、クライアントはどのメモリアドレスが共有されているかをどのように知ることができますか?CreateFileMappingは、各ファイルマッピングオブジェクトに名前を付けることができるため、これを解決します。Boostにも同様の機能があることは知っていますが、未加工のWindowsAPI機能を使用してこれを解決したいと考えています。
user152949
質問する
1650 次
1 に答える
5
このページの「クライアント」と「サーバー」という用語に混乱したと思います。LSA (windows security) の文脈からするとCreateSharedMemory
、あなたが望むことをしているように見えるかもしれません。そうではありません: 関数は、Windows のセキュリティと認証のコンテキストでのみ設計および使用されます。
名前にもかかわらず、2 つのプロセス間で共有メモリを割り当てる (汎用) 関数ではありません。
プロセス間でメモリを共有するために必要なものは、(通常) ページ ファイルでバックアップされたメモリ マップ ファイルによって行われますCreateFileMapping
。他の手法も存在しますが、ページ ファイルでバックアップされたメモリ マップ ファイルを使用することをお勧めします。
于 2013-02-13T13:27:11.623 に答える