第一种使用互斥体 // 使用互斥体保证单体运行 BOOL IsAlreadyRun() {HANDLE hMutex = NULL;hMutex = CreateMutex(NULL, FALSE, L"MYFLAG");if (hMutex != NULL){if (ERROR_ALREADY_EXISTS == GetLastError()){ReleaseMutex(hMutex);return TRUE;}}return FALSE; } int main() {if (IsAlreadyRun()){return 0;} } 第二种使用共享内存 // 创建共享内存段 #pragma data_seg("sharedata") DWORD dwFlagId = 0xEE; #pragma data_seg() #pragma comment(linker, "/SECTION:sharedata,RWS")// 使用共享内存段保证单体运行 BOOL IsAlreadyRun() {if (dwFlagId == 0xEF){return TRUE;}return FALSE; } //------------------------------- int main() {if (IsAlreadyRun()){return 0;}else{dwFlagId = 0xEF;} }