注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

使用OCX和Web的交互九对消息循环的机制的支持  

2015-02-12 10:59:44|  分类: C++(VC)编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

使用OCXWeb的交互九对消息循环的机制的支持

 

以前在网上和应用上遇到过DLL中创建线程或者窗口有问题,因为这个涉及到不同的TLS(线程局部存储)和不同的环境的问题。比如在动态库的DLL_PROCESS_ATTACH 中不要创建线程,这个就会引起崩溃,详细的原因看下面的网址。

http://support.microsoft.com/kb/142243/en-us

一般我们是开放一个接口,让客户主动创建。这有点类似于构造函数里的初始化问题。

但在这里也发现了,如果使用DLL创建窗口,会直接引起崩溃,每次到CreateWindow后,就会直接挂掉。

其原因怀疑有:(主要是在现场复现,本地没有所以无法完全准确定位)

1、  因为本地测试和现场不同,一个使用JSP,一个使用HTML,而且前者有父子窗口,所以是不是创建窗口的参数是不是需要使用WS_CHILD这个选项,而不是使用WS_OVERLAPPEDWINDOW这个参数。

2、  是不是与JSP有不兼容的现象。但是这个可能性非常小。

这个窗口创建的目的是为了提供USB口的插入和拔出监听事件消息。创建了一个隐藏的窗体。

要解决这个问题,还是真得有些麻烦,所以在现场基本是把这些代码都注释掉了。但这样也导致这个功能无法使用了。

所以说,DLL库的使用真得是太麻烦,一两个还可以,多了就麻烦了。不好调试也不好管理。动不动版本就不同了。

  评论这张
 
阅读(475)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017