不同进程通过共享内存实现数据共享
2017-06-03 21:45
483 查看
第1步: 新建控制台工程,主进程代码如下
第2步: 新建控制台工程,从进程代码如下
第3步: 依次运行主从进程,结果如下
#include "stdafx.h" #include "windows.h" int _tmain(int argc, _TCHAR* argv[]) { wchar_t MemShareName[] = L"MemShareForTest"; LPVOID pMemShare; int data = 10; //HANDLE hMap = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,0,MemShareName); HANDLE hMap = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,128,MemShareName); // hu 空间大小为Bytes pMemShare = ::MapViewOfFile(hMap,FILE_MAP_ALL_ACCESS,0,0,0); memcpy((int*)pMemShare,&data,sizeof(data)); printf("%x:%d\n",(int*)pMemShare,*(int*)pMemShare); data++; memcpy((int*)pMemShare+1,&data,sizeof(data)); printf("%x:%d\n",(int*)pMemShare,*(int*)pMemShare); printf("%x:%d\n",(int*)pMemShare+1,*((int*)pMemShare+1)); getchar(); ::UnmapViewOfFile(pMemShare); ::CloseHandle(hMap); return 0; }
第2步: 新建控制台工程,从进程代码如下
#include "stdafx.h" #include "windows.h" int _tmain(int argc, _TCHAR* argv[]) { wchar_t MemShareName[] = L"MemShareForTest"; LPVOID pMemShare; HANDLE hMap = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,0,MemShareName); pMemShare = ::MapViewOfFile(hMap,FILE_MAP_ALL_ACCESS,0,0,0); printf("%x:%d\n",(int*)pMemShare,*(int*)pMemShare); printf("%x:%d\n",(int*)pMemShare+1,*((int*)pMemShare+1)); getchar(); return 0; }
第3步: 依次运行主从进程,结果如下
相关文章推荐
- 相同程序不同进程下实现数据共享
- 通过execve实现不同进程间文件描述符的共享
- Android 不同应用通过SharedPreference实现共享数据
- Android通过sharedUserId实现不同APK数据共享
- 通过SharedPreferences实现进程间数据共享的问题详解
- Android 不同应用通过SharedPreference实现共享数据
- 通过自定义区段实现进程间的数据共享
- 转发:Python通过Manager方式实现多个无关联进程共享数据
- SharedPreference 实现不同进程间的数据共享
- 通过内存映射文件实现进程间数据共享
- Android 不同应用通过SharedPreference实现共享数据
- 0907使用write函数向共享内存中写入数据,实现不同进程间的数据信息传递
- Python通过Manager方式实现多个无关联进程共享数据
- 通过信号量和共享内存实现h264码流在不同进程间传输
- Android 不同应用通过SharedPreference实现共享数据
- 共享内存 —— 通过SharedPreferences实现进程间数据共享的问题详解
- 通过URL实现在不同页面间传输数据
- Linux下通过共享内存进行进程间通信,进程间同步使用信号量来实现
- 共享内存实现进程间大数据的交换
- 共享内存实现进程间数据的交换