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

 

转载于:https://www.cnblogs.com/himessage/archive/2013/01/07/2848642.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值