(轉)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); } } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM