当前位置: 代码迷 >> 综合 >> CreateFileMapping/OpenFileMapping/MapViewOfFile
  详细解决方案

CreateFileMapping/OpenFileMapping/MapViewOfFile

热度:18   发布时间:2023-12-22 06:05:36.0

 先要使用函数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());