首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

ActvieX插件退出时卡死解决方案

2013-06-25 
ActvieX插件退出时卡死我开发了一个DLL库, 库里边会创建几个线程,退出时主线程会先依次发送QUIT消息给各个

ActvieX插件退出时卡死
我开发了一个DLL库, 库里边会创建几个线程,
退出时主线程会先依次发送QUIT消息给各个线程.

例如先发送QUIT消息给线程1, 然后调用GetExitCodeThread获取线程1是否已经退出.
然后再发送QUIT消息给线程2, 以此类推,直到所有的线程都退出.

这个普通应用程序上调用,完全没问题.

现在的问题是.在ActvieX插件调用我这个DLL库时,在退出的时候,
在ExitInstance函数里,调用该库的反初始化接口.

发现卡住了, 在调用GetExitCodeThread获取线程的状态时, 一直是STILL_ACTIVE.
但我通过断点,可以确认该线程已经调用"return 0"了.

然后我在"线程"列表窗口里查看,发现该线程的确是没有完全退出,
正处于"ntdll.dll 7c92e514"的位置,而且还发现有好多进程都处理该位置.

有谁知道这种怎么回事吗?

[解决办法]
你是通过消息让线程退出的?
消息发出去没?
换成event吧
[解决办法]
用windbg生成个dump.看看有没有死锁。

[解决办法]
不是写了死循环把?
[解决办法]
吼吼,这么复杂?
不要调wait函数
移除摄像头回调之后马上退出,别管他是不是真的退了
如果工程里面有定义了全局的变量在线程里面使用了也可能会造成影响
试试disable动态库的attach消息

热点排行