CreateMutex用法

 
1.  CreateMutex只是创建了一把锁,  这把锁你用来锁门还是锁抽屉还是锁你对象的内裤都由你自己决定。 2. lpName是指定这把锁的名字.  你要不给这把锁取个名字都可以.  只是有了相同的名字, 在跨进程加锁的时候, 就可以得到同一把锁。 3. HANDLE m_hMutex = CreateMutex(NULL,TRUE,"cplusplus_me");   只是创建了一把锁, 到目前这句完成, 他没有锁任何东西。 //加锁
WaitForSingleObject(hMutex, INFINITE);  //还有其它函数可用, 详见MSDN中说明
//这里写被加锁的东西.  一般是操作一些共享数据(占用系统内存)。

//解锁
ReleaseMutex(hMutex);

BOOL CTool::ExistObject()
{
    SECURITY_ATTRIBUTES sa;
    SECURITY_DESCRIPTOR sd;

    InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
    SetSecurityDescriptorDacl(&sd,TRUE,NULL,FALSE);
    sa.nLength = sizeof(SECURITY_ATTRIBUTES);
    sa.bInheritHandle = FALSE;
    sa.lpSecurityDescriptor = &sd;
    HANDLE hOnlyOneMonitor = CreateMutex(&sa, TRUE, "Global\\DFSDFDS");
    if((hOnlyOneMonitor == NULL) || (GetLastError() == ERROR_ALREADY_EXISTS))
        return TRUE;
    return FALSE;
}

 【参考】https://www.cnblogs.com/staring-hxs/p/3664765.html

 

posted on 2019-03-26 11:11  lydstory  阅读(759)  评论(0编辑  收藏  举报

导航