VC6.0的程序结束后进程不自动结束,如何解决?

我编了个小的MFC程序,里面添加了很多动态库,还有很多的控件,结果就出现了程序关闭后进程不能结束的情况,望高手指点一下。其中包括matcom的库文件,应该是因为它才导致的... 我编了个小的MFC程序,里面添加了很多动态库,还有很多的控件,结果就出现了程序关闭后进程不能结束的情况,望高手指点一下。
其中包括matcom的库文件,应该是因为它才导致的上述情况,InitM和exitM函数都调用了,思考了半个月还没找到答案,所以在此求教,奉上100财富。
补充:我的动态链接库都是隐式加载的,怎么卸载,本人菜鸟,半路出家学的MFC,多谢大家指点

非常感谢各位的回答,但是问题还是没有解决,我想可以从多线程的角度入手查找一下,还是大家来投票吧
展开
 我来答
网缘小子
2009-09-30 · TA获得超过102个赞
知道答主
回答量:133
采纳率:0%
帮助的人:124万
展开全部
你看看你代码里边,申请使用的各类资源,在关闭时有没有释放完,看看动态库的句柄,后面有没有释放掉;再就是看看你关闭的是不是你程序的主线程。
百度网友1d8e8b9
2009-10-06 · TA获得超过913个赞
知道小有建树答主
回答量:589
采纳率:60%
帮助的人:317万
展开全部
隐式加载的DLL不需要显示的释放,系统会自动卸载。

导致你的进程不能结束,我估计是有线程阻塞。可能你的程序是多线程的,在退出时由于某种原因导致了线程阻塞,因而无法结束。如果你的DLL是你自己写的,在DllMain函数中,初学者很容易写一些线程阻塞的代码。《Windows核心编程》上有关于DLL线程阻塞的介绍。

没有代码无法帮你分析具体原因。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
何处淬吴钩
2009-09-30 · TA获得超过5043个赞
知道大有可为答主
回答量:2947
采纳率:50%
帮助的人:2374万
展开全部
你说的情况,是因为你的程序运行了太多的东西,你的窗口并不是与进程同时存在的主窗口,也就是说,你的窗口关闭了,进程不一定中止,就像有的程序没有窗口一样。
要解决这个问题,可以重写下窗口的OnClose函数,把你调用的dll、控件,该关闭的关闭,该清理的清理,该释放的释放,一定可以解决问题(用ExitProcess\TerminateProcess很简单就可退出进程)。
不建议你用ExitProcess\TerminateProcess等函数退出进程,这样可能造成内存泄露。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我不知道啊O
2009-09-30 · TA获得超过206个赞
知道小有建树答主
回答量:296
采纳率:0%
帮助的人:134万
展开全部
void C****Dlg::OnClose()
{
if(6==::MessageBox (m_hWnd,"是否要退出?","???",4+32+256))
{
OnUnLoad();//我自己定义的卸载函数
CDialog::OnClose();
}
return ;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jierandefeng
2009-09-30 · TA获得超过212个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:326万
展开全部
专门用一个BUTTON来结束程序,发送CLOSE消息应该就可以具体代码:
void CMyDlg::OnButton2()
{
// TODO: Add your control notification handler code here
// ::SendMessage(AfxGetMainWnd()->m_hWnd,WM_CLOSE,0,0);
if (MessageBox("确定要退出吗?","提示",MB_YESNO|MB_DEFBUTTON2)==IDYES)
{
::SendMessage(AfxGetMainWnd()->m_hWnd,WM_CLOSE,0,0);
}

}

以上是我的解决方法,有什么不对的请指出.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0ahuan
2009-09-30 · TA获得超过702个赞
知道答主
回答量:510
采纳率:0%
帮助的人:310万
展开全部
试着把使用完的库都关闭掉看看,还有使用完的句柄等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式