我开发了一个DLL库, 库里边会创建几个线程,
退出时主线程会先依次发送QUIT消息给各个线程.例如先发送QUIT消息给线程1, 然后调用GetExitCodeThread获取线程1是否已经退出.
然后再发送QUIT消息给线程2, 以此类推,直到所有的线程都退出.这个普通应用程序上调用,完全没问题.现在的问题是.在ActvieX插件调用我这个DLL库时,在退出的时候,
在ExitInstance函数里,调用该库的反初始化接口.发现卡住了, 在调用GetExitCodeThread获取线程的状态时, 一直是STILL_ACTIVE.
但我通过断点,可以确认该线程已经调用"return 0"了.然后我在"线程"列表窗口里查看,发现该线程的确是没有完全退出,
正处于"ntdll.dll 7c92e514"的位置,而且还发现有好多进程都处理该位置.有谁知道这种怎么回事吗?
退出时主线程会先依次发送QUIT消息给各个线程.例如先发送QUIT消息给线程1, 然后调用GetExitCodeThread获取线程1是否已经退出.
然后再发送QUIT消息给线程2, 以此类推,直到所有的线程都退出.这个普通应用程序上调用,完全没问题.现在的问题是.在ActvieX插件调用我这个DLL库时,在退出的时候,
在ExitInstance函数里,调用该库的反初始化接口.发现卡住了, 在调用GetExitCodeThread获取线程的状态时, 一直是STILL_ACTIVE.
但我通过断点,可以确认该线程已经调用"return 0"了.然后我在"线程"列表窗口里查看,发现该线程的确是没有完全退出,
正处于"ntdll.dll 7c92e514"的位置,而且还发现有好多进程都处理该位置.有谁知道这种怎么回事吗?
解决方案 »
- 救急!VC++实现打印网页
- GetWindowText无法读取只读edit内容?
- 讨论一下ATL中的ExtractCreateWndData是怎样实现的
- 256色BMP转PCX错位的问题
- 关于strlen()
- 用FTP下载文件时,怎么不能同时开两个数据通道进行下载呀?
- vc6+ODBC+Access数据库,删除access表中某个字段后,查询有问题?请教各位!
- 能不能设计一个通用模块,能用它检测到程序中某指定变量的值?
- iceberg:CELL似乎不支持ACCESS2000;有地方升级吗?ACCESS97很难找。。。
- 初学者的问题? 几个函数的关系
- 怎样使对话框程序里的某控件失效?
- 基于对话的主窗口的句柄是会改变的么?
消息发出去没?
换成event吧
单步调试可以发现,已经调用了return语句
但就是一直退不出来.
用GetExitCodeThread获取它的状态时, 一直是STILL_ACTIVE.
不要调wait函数
移除摄像头回调之后马上退出,别管他是不是真的退了
如果工程里面有定义了全局的变量在线程里面使用了也可能会造成影响
试试disable动态库的attach消息