用这段代码可以实现
HANDLE m_hMutex = CreateMutex(NULL, TRUE, _T("halibote"));//创建互斥变量
if (::GetLastError() == ERROR_ALREADY_EXISTS)
{
AfxMessageBox(_T("已经存在"));
return FALSE;
}
但是这段代码就不行了
CMutex MX(TRUE,_T("halibote"));
if (::GetLastError() == ERROR_ALREADY_EXISTS)
{
AfxMessageBox(_T("已经存在"));
return FALSE;
}请问下大家为什么这样不行呢?
HANDLE m_hMutex = CreateMutex(NULL, TRUE, _T("halibote"));//创建互斥变量
if (::GetLastError() == ERROR_ALREADY_EXISTS)
{
AfxMessageBox(_T("已经存在"));
return FALSE;
}
但是这段代码就不行了
CMutex MX(TRUE,_T("halibote"));
if (::GetLastError() == ERROR_ALREADY_EXISTS)
{
AfxMessageBox(_T("已经存在"));
return FALSE;
}请问下大家为什么这样不行呢?
CMutex::~CMutex里面应该是是没有做事情的。
在D:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\src\mfc\mtex.cpp 53行
CMutex::~CMutex()
{
}我在app.cpp中定义成全局的,但是好像也没有作用。
try{ CMutex MX(TRUE,_T("halibote"));
}catch(CResourceException* pE)
{
//无法获取互斥体的所有权,就是说互斥体已经存在
}