我的一个对话框程序在退出的时候要写一些配置文件,可是如果用户非正常退出(我是指用户在未退出程序的情况下,直接关闭WINDOWS等操作),就得不到写配置文件的机会。请问如何解决这个问题?
我重载了OnClose函数、OnCancel函数、OnOk函数,响应了WM_DESTROY消息,均无法解决这个问题。
我重载了OnClose函数、OnCancel函数、OnOk函数,响应了WM_DESTROY消息,均无法解决这个问题。
要不就是在windows“服务”中加入你自己的程序,保证在用户正常关闭系统但非法关闭楼主的程序之前完成写文件。
关注
响应WM_QUERYENDSESSION消息即可,如下:
BOOL CSerialCOMDlg::OnQueryEndSession()
{
if (!CDialog::OnQueryEndSession())
return FALSE; if (isConfigChanged) //配置已更改,写入文件
InitFromFile(FALSE);
return TRUE;
}to JedyChen(Jedy.Chen)
拔电源属于恶做剧,而未退出程序直接关闭系统是正常的操作,如果要钻牛角尖的话,还要测试一下硬盘坏了没有,因为如果硬盘坏了,保存也会不成功的。不过你说的还有部分正确,就是响应一个消息而已,这个问题我在vckbase上一发不到一分钟就解决了,在CSDN上发了快两天了,也解决不了,不是CSDN水平差,而是高手不知道去哪了!
CSDN的确能帮到人,起码帮到了偶~