MFC通过文件内存映射实现资源共享

HANDLE hMapFile = 0;
CString mapFileName = L"myMappingFile";
void CDemoDlg::OnBnClickedButton7()//内存映射使用
{
    // TODO: 在此添加控件通知处理程序代码
    SIZE_T mapbufsize = 200;
    BYTE mapByteValue;
    /* step1 创建文件 */
    HANDLE hFile = CreateFile(L"D:\\test1.txt",GENERIC_ALL,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
    ASSERT(SUCCEEDED(hFile) && hFile != NULL);
    /* step2 创建内存映射文件对象 */
    /*
    调用CreateFileMapping的时候可能会出现的GetLastError的相应错误:
    ERROR_FILE_INVALID (错误_文件_无效)如果企图创建一个零长度的文件映射
    ERROR_INVALID_HANDLE(错误_无效_处理) 内存空间的命名和现有的内存映射,互斥量,信号量,临界区有同名
    ERROR_ALREADY_EXISTS (错误或已经存在)表示内存空间命名已经存在
    */
    hMapFile = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0, mapbufsize, mapFileName.GetString());
    if (FAILED(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值