有时候有多个运行实例可能会造成错误,尤其是进程中有多个线程时。
#include<iostream>
#include<windows.h>
using namespace std;
int main()
{
cout << "In this process!\n";
HANDLE hMutex = CreateMutex(NULL, true, L"XOne");
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
if (hMutex) CloseHandle(hMutex);
MessageBox(0, L"XOne already runing!\n", L"", 0);
return -1;
}
getchar();
return 0;
}