把下面的函数加载到程序的开始处,例如MFC程序的的初始化中
//
//函数名:Program_Mutex
//功能:确保程序只有唯一的实例
//返回值:0-正常;1-已经有一个正在运行的实例;-1 -创建互斥对象失败
//
int Program_Mutex()
{
int nRet = 0;
DWORD dwRet = 0;
HANDLE hMutex = NULL;
TCHAR* lpszName = L"APPMutex";
do {
hMutex = ::CreateMutex(NULL, FALSE, lpszName);
dwRet = ::GetLastError();
switch (dwRet) {
case 0: {
} break;
case ERROR_ALREADY_EXISTS: {
MessageBox(NULL, L"通知:该应用程序已经开启。\n", L"通知", MB_OK);
nRet = 1;
} break;
default: {
MessageBox(NULL, L"提示:该应用程序创建互斥对象失败。\n", L"错误", MB_OK);
nRet = -1;
} break;
}
} while (FALSE);
return nRet;
}