设为首页 加入收藏

TOP

用C++实现进程同步,进程间共享内存(二)
2017-10-18 09:07:21 】 浏览:9494
Tags:实现 进程 同步 共享 内存
0, // 高位文件大小 BUF_SIZE, // 地位文件大小 "ShareMemory" // 共享内存名称 ); // 映射缓存区视图 , 得到指向共享内存的指针 lpBase = MapViewOfFile( hMapFile, // 共享内存的句柄 FILE_MAP_ALL_ACCESS, // 可读写许可 0, 0, BUF_SIZE ); // 将数据拷贝到共享内存 strcpy((char*)lpBase,pDlg->m_pShareDate); // 线程挂起等其他线程读取数据 Sleep(200); delete [] pDlg->m_pShareDate;//清空共享内存 pDlg->m_pShareDate=NULL; // } else { AfxMessageBox(_T("MatToChar格式转换失败")); } //--------释放互斥量--------------------------- pDlg->MyReleaseMutex(); //======共享内存================================= // 解除文件映射 UnmapViewOfFile(lpBase); // 关闭内存映射文件对象句柄 CloseHandle(hMapFile); //---------------共享内存------------------------------------------------------------------------
//释放互斥量 函数
bool CCameraTimeDlg::MyReleaseMutex()
{
    //互斥量在内核创建。  
    // 参数:1、指向安全属性的指针,  
    //2、 初始化互斥对象的所有者,如创建进程希望立即拥有互斥体,则设为TRUE。一个互斥体同时只能由一个线程拥有  
    //3、 指向互斥对象名的指针  
    //一旦不再需要,注意必须用CloseHandle函数将互斥体句柄关闭。  
    HANDLE mutex = CreateMutex(NULL, TRUE, name);  
    if (mutex)  
    {  
        Sleep(10);
        //printf("创建成功!\n"); 
        char ch = getch();  

        ReleaseMutex(mutex);    //离开互斥区  

        CloseHandle(mutex);     //关闭资源 
    }  
    else  
    {  
        return false;  
    }  

    return true;
}
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++ 资源大全 下一篇一句话总结C++所有设计模式和索引

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目