想让多个程序通过内存映射文件进行数据共享,则应该在每一个程序中都创建内存映射文件:
一.在程序中定义以下变量:
HANDLE hFileMapping = NULL;
二.创建内存映射文件:
hFileMapping = CreateFileMapping((HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0, 100, "MemoryFile");
三.往内存映射文件写数据:
LPVOID FilePointer = MapViewOfFile(hFileMapping, FILE_MAP_WRITE, 0, 0, 0);
if (FilePointer == NULL) {
MessageBox("获取内存映射文件指针失败。", "提示", MB_OK);
return;
}
UpdateData(TRUE);
::lstrcpy((char*)FilePointer, (LPCSTR)m_edit_srcdata);
UnmapViewOfFile(FilePointer);
if (FilePointer != NULL) {
MessageBox("Memory File Written.", "Info", MB_OK);
}
四.从内存映射文件读数据:
LPVOID FilePointer = MapViewOfFile(hFileMapping, FILE_MAP_ALL_ACCESS, 0, 0, 0);
if (FilePointer == NULL) {
MessageBox("获取内存映射文件指针失败。", "提示", MB_OK);
return;
}
m_edit_memdata = (char*)FilePointer;
UnmapViewOfFile(FilePointer);
UpdateData(FALSE);
本文介绍如何利用内存映射文件实现多个程序间的数据共享。主要内容包括:在程序中定义必要的变量;创建内存映射文件;向内存映射文件写入数据及从内存映射文件读取数据。
288

被折叠的 条评论
为什么被折叠?



