标签:
小白一枚,如有不对,请各位大神多多指教!
最近看了看win32进程间通讯。简单写了写利用共享内存实现进程间通讯
使用共享内存实现进程间通讯:
1.在WM_CREATE消息下创建文件映射内核对象
1 hMapFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, BUF_SIZE, (LPCWSTR)szName);
2.在需要进行数据共享的地方映射缓存区视图,将要写入的数据放入pbuf
1 pBuf = (char *)MapViewOfFile( 2 hMapFile, 3 FILE_MAP_ALL_ACCESS, 4 0, 5 0, 6 BUF_SIZE-1); 7 GetWindowText(hEdit2, (LPWSTR)szSend, BUF_SIZE); 8 strncpy(pBuf, szSend, BUF_SIZE-1); 9 pBuf[BUF_SIZE - 1] = ‘\0‘;
3.当用户进程结束使用共享内存后,调用UnmapViewOfFile函数以取消其地址空间内的视图(可以再WM_DESTROY中进行设置)
1 if(hMapFile){ 2 UnmapViewOfFile(pBuf); 3 CloseHandle(hMapFile); 4 }
标签:
原文地址:http://www.cnblogs.com/insist-novel/p/5232689.html