创建一个MFC应用程序后,在App实现文件的头上加上共享段,比如:
#pragma data_seg("ServerInstance")
BOOL existed = FALSE;
#pragma data_seg()
#pragma comment(linker, "/section:ServerInstance,rws")
然后,在该文件的InitInstance函数里进行判断并设置,如下
if(!existed)
{
existed = TRUE;
}
else
{
AfxMessageBox(_T("已存在一个实例,本实例即将关闭")) ;
return FALSE;
}
这样,当已有一个实例存在时,再开启一个实例,将会弹出对话框,然后会自动关闭了。不过,这只是在Windows XP下通过了,不知道在高一点的系统里行不行。