ヘタにSOCKETとかで通信するより速いという噂。
CreateFileMapping()で ハンドルに INVALID_HANDLE_VALUE を指定するとファイルすら作らない共有ができる
データ送出の流れ
- CreateFileMappingで、メモリマップドファイルを作成する。
- MapViewOfFileで、メモリマップドファイルをアドレス空間にマップする。
- データを書き込む。
- UnmapViewOfFileで、メモリマップドファイルを解放する。
- 受信も終わり不要になったら、CloseHandleで、ハンドルを解放する。
データ受取の流れ
- OpenFileMappingで、名前付きのファイルマッピングオブジェクトを開く。
- MapViewOfFileで、メモリマップドファイルをアドレス空間にマップする。
- データを読み込む。
- UnmapViewOfFileで、メモリマップドファイルを解放する。
- 受信も終わり不要になったら、CloseHandleで、ハンドルを解放する。
ミューテックス(CreateMutex)で読み書き同時によるデータ破損にも対応しよう
ネタ元