在我的项目中,我实现了CreateFileMapping
在两个进程之间共享内存的概念。我有一个服务器进程,我在其中存储会话数据的内存地址,其中包含有关特定图像的详细信息。我有一个客户端进程,我从缓冲区中读取该地址。现在的问题是地址显示在客户端进程中,但缺少一些细节。
这是我的服务器进程代码:
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”中缺少一些数据。
下面的服务器测试变量显示了显示变量内容的附加图像。
下面的客户端测试变量显示了显示变量内容的附加图像。
请检查差异我需要在我的客户端进程中也可见的项目数据..