(转)CreateFileMapping/OpenFileMapping/MapViewOfFile
http://blog.csdn.net/rubyzhudragon/article/details/4342734
要先使用函数CreateFileMapping来创建一个想共享的文件数据句柄,然后使用MapViewOfFile来获取共享的内存地址,然后使用OpenFileMapping函数在另一个进程里打开共享文件的名称,这样就可以实现不同的进程共享数据
void FileMapping(void) { //打开共享的文件对象。 m_hMapFile = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE,_T("TestFileMap")); if (m_hMapFile) { //显示共享的文件数据。 LPTSTR lpMapAddr = (LPTSTR)MapViewOfFile(m_hMapFile,FILE_MAP_ALL_ACCESS, 0,0,0); OutputDebugString(lpMapAddr); } else { //创建共享文件。 m_hMapFile = CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,
PAGE_READWRITE,0,1024, _T("TestFileMap"));
//拷贝数据到共享文件里。 LPTSTR lpMapAddr = (LPTSTR)MapViewOfFile(m_hMapFile,FILE_MAP_ALL_ACCESS, 0,0,0); std::wstring strTest(_T("TestFileMap")); wcscpy(lpMapAddr,strTest.c_str()); FlushViewOfFile(lpMapAddr,strTest.length()+1); } }