用ATL COM写的DLL MFC程序调用 求怎么在DLL中添加一个关闭进程的方法
用ATL COM写的DLL MFC程序调用 求如何在DLL中添加一个关闭进程的方法
要求我用ATL COM工程编写生成一个DLL文件供别人的MFC程序调用 是关于串口的 功能我都实现了 但是发现每次关闭MFC的时候都不会自动关闭该进程
举个例子 MFC的工程名叫ABC 运行的时候任务管理器就会有进程ABC.exe ABC程序调用我的DLL 执行完功能之后 关闭MFC的对话框 但是ABC.exe这个进程还是存在 就会导致之前用的那个串口一直被占用 要是再次打开ABC 就无法执行功能了 除非先在任务管理器手动结束进程 然后再打开ABC 就可以了
求教如何能够让MFC关闭的时候把进程也结束了。。。我只会结束固定名字的进程 但是由于MFC工程的名字人家可以随便取 我就不知道怎么办了。。。
PS: 我在DLL里有添加一个CloseService的方法 并且已经实现了不管什么名字的MFC程序 在对话框关闭的时候都会自动调用这个方法 但是方法具体怎么实现关闭进程就不知道了。。。
------解决方案--------------------
这个问题很明显是你MFC程序或Com DLL中有线程没有结束导致的。进程中如果有线程没有被结束掉,那么进程是不会退出的。我感觉最有可能的是你com dll中处理串口的地方的线程,接收串口数据接口是阻碍的,所以一般都会用一个线程来处理,估计就是这个线程没结束。
这是一个程序的缺陷,最好不要用强制的办法结束进程。
要求我用ATL COM工程编写生成一个DLL文件供别人的MFC程序调用 是关于串口的 功能我都实现了 但是发现每次关闭MFC的时候都不会自动关闭该进程
举个例子 MFC的工程名叫ABC 运行的时候任务管理器就会有进程ABC.exe ABC程序调用我的DLL 执行完功能之后 关闭MFC的对话框 但是ABC.exe这个进程还是存在 就会导致之前用的那个串口一直被占用 要是再次打开ABC 就无法执行功能了 除非先在任务管理器手动结束进程 然后再打开ABC 就可以了
求教如何能够让MFC关闭的时候把进程也结束了。。。我只会结束固定名字的进程 但是由于MFC工程的名字人家可以随便取 我就不知道怎么办了。。。
PS: 我在DLL里有添加一个CloseService的方法 并且已经实现了不管什么名字的MFC程序 在对话框关闭的时候都会自动调用这个方法 但是方法具体怎么实现关闭进程就不知道了。。。
------解决方案--------------------
这个问题很明显是你MFC程序或Com DLL中有线程没有结束导致的。进程中如果有线程没有被结束掉,那么进程是不会退出的。我感觉最有可能的是你com dll中处理串口的地方的线程,接收串口数据接口是阻碍的,所以一般都会用一个线程来处理,估计就是这个线程没结束。
这是一个程序的缺陷,最好不要用强制的办法结束进程。