MyException - 我的异常网
当前位置:我的异常网» VC/MFC » mfc运行启动的有关问题

mfc运行启动的有关问题

www.MyException.Cn  网友分享于:2013-02-20  浏览:4次
mfc运行启动的问题
如何使程序只运行一次,也就是像一些播放软件那样,每次双击与程序相关联的文件,不再创建一个新窗口。
mfc  mfc

------解决方案--------------------
'''singleton模式
------解决方案--------------------
方法一:使用Mutex来进行
1.  首先要添加如下的namespace:
using System.Threading;
 
2.  修改系统Main函数,大致如下:
        bool bCreatedNew;
       
        //Create a new mutex using specific mutex name
        Mutex m =new Mutex( false, "myUniqueName", out bCreatedNew );
        if( bCreatedNew )
            Application.Run(new yourFormName());
 
如上面编码就可以了,要注意的一点是,在给Mutex起名字的时候,不要太简单,以防止和其他程序的Mutex重复,从而达不到所预想的效果。
------解决方案--------------------

BOOL CInstantMessagingApp::InitInstance()
{
/// 保证只有唯一实例在运行
HANDLE hEvent = ::CreateEvent( NULL, FALSE, FALSE, "InstantMessaging" );
if( hEvent )
{
if( ERROR_ALREADY_EXISTS == GetLastError() )
{
return FALSE;
}
}

...

return FALSE;
}

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有