佚名通过本文主要向大家介绍了atl服务,atl34砂轮,atl方形动力电池,atl80.dll官方下载,atl71.dll一键修复等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 如何在ATL服务内释放自身?
描述:
解决方案1:
描述:
用ATL做了一个exe的服务(a.exe)让其它应用程序调用,但有时这些应用程序因为自身的原因非法关闭了(例如内存出错等),这时候,ATL服务还在被占用(表现为在任务管理器中,a.exe程序并没有退出.),请问我该如何在这种情况下退出a.exe程序.
目前已经可以正确检测到其它应用程序的非法关闭,但就是释放不了服务对象,a.exe程序老是退不出来.
请高手指点,谢谢.
解决方案1:
a也是个进程,TerminateProcess应该可以
解决方案2:把客户端创建的对象指针与客户端一个标识符(你不是说可以检测到非法关闭的客户端,我想开始创建时,肯定也知道是地个客户端创建的吧)建立关联,如客户端关闭,调用释放对象的函数。
解决方案3: 由于你:
已经可以正确检测到其它应用程序的非法关闭
所以:
在“其它应用程序”“创建一个对象时”时,“服务需要分配一定数量的内存”,这时把“其它应用程序”与“服务需要分配一定数量的内存”邦定在一起,当“正确检测到其它应用程序的非法关闭”时,删除相应的内存。