std::wstring strMapName(L"ShareMemoryTest"); // 内存映射对象名称
std::wstring strComData(L"This is ShareMemory data!"); // 共享内存中的数据
HANDLE ShareMemoryHandle = ::OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, strMapName.c_str());
if (ShareMemoryHandle == NULL) {
ShareMemoryHandle = ::CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, strComData.length() + 1, strMapName.c_str());
LPVOID pBuffer = ::MapViewOfFile(ShareMemoryHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0);
wcscpy((TCHAR*)pBuffer, strComData.c_str());
MessageBox(NULL, L"写入共享内容", 0, 0);
}
else {
LPVOID pBuffer = ::MapViewOfFile(ShareMemoryHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0);
MessageBox(NULL, (TCHAR*)pBuffer, 0, 0);
}
while (true){
Sleep(100000);
}
std::wstring strComData(L"This is ShareMemory data!"); // 共享内存中的数据
HANDLE ShareMemoryHandle = ::OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, strMapName.c_str());
if (ShareMemoryHandle == NULL) {
ShareMemoryHandle = ::CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, strComData.length() + 1, strMapName.c_str());
LPVOID pBuffer = ::MapViewOfFile(ShareMemoryHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0);
wcscpy((TCHAR*)pBuffer, strComData.c_str());
MessageBox(NULL, L"写入共享内容", 0, 0);
}
else {
LPVOID pBuffer = ::MapViewOfFile(ShareMemoryHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0);
MessageBox(NULL, (TCHAR*)pBuffer, 0, 0);
}
while (true){
Sleep(100000);
}