私のプロジェクトではCreateFileMapping
、2 つのプロセス間でメモリを共有するという概念を実装しました。特定の画像に関する詳細を含むセッション データのメモリ アドレスを格納するサーバー プロセスがあります。そして、バッファからそのアドレスを読み取るクライアント プロセスがあります。ここでの問題は、アドレスがクライアント プロセスに表示されることですが、一部の詳細が欠落しています。
これは私のサーバープロセスコードです:
HANDLE hMem;
LPCSTR pBuf;
#define BUF_SIZE 1024
static const char MemoryName[]="Share Memory Name";
hMem=CreateFileMapping(INVALID_HANDLE_VALUE,NULL, PAGE_READWRITE,0, BUF_SIZE, MemoryName);
pBuf = (LPCSTR) MapViewOfFile(hMem, FILE_MAP_ALL_ACCESS, 0, 0, BUF_SIZE);
CopyMemory((PVOID)pBuf, session, BUF_SIZE);
LtEntity test = LtEntity(pBuf);
これは私のクライアント プロセス コードです。
HANDLE hMem;
LPCSTR pBuf;
#define BUF_SIZE 1024
static const char MemoryName[]="Share Memory Name";
hMem = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, MemoryName);
pBuf = (LPCSTR) MapViewOfFile(hMem, FILE_MAP_ALL_ACCESS, 0, 0, BUF_SIZE);
LtEntity test = LtEntity(pBuf);
サーバー プロセスでは変数 "test" にすべての詳細が含まれていますが、クライアント "test" では一部のデータが欠落しています。
以下のサーバー テスト変数は、変数の内容を示す添付画像を示しています。
以下のクライアント テスト変数は、変数の内容を示す添付画像を示しています。
クライアントプロセスでも表示されるアイテムデータが必要な違いを確認してください..