MFC中,在同台计算机中,如何在两个不同的应用程序中进行比较大的数据交换?
在MFC中,在同一台计算中,有两个应用程序,一个用于接收数据,一个用来发送数据,请问这两个程序之间的数据用什么方式进行发送?(数据块比较大)
[解决办法]
内存映射,针对大数据,效率高
[解决办法]
用内存文件,起一个线程监听通知
- C/C++ code
//----------------进程AHANDLE hFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, dwSize, //文件大小 sName); //文件名,要具有唯一性//得到内存指针,向pData中写数据就行了LPVOID pData = MapViewOfFile(hFile,FILE_MAP_ALL_ACCESS,0,0,0);'//写完数据后,CreateEvent,SetEvent通知B进程//-----------------进程B//起一个监听线程,WaitForSingleObject用同样的名称打开内存文件,读取数据HANDLE hFile = OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE, sName);//得到内存指针,从pData中读数据就行了LPVOID pData = MapViewOfFile(hFile,FILE_MAP_ALL_ACCESS,0,0,0);