双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

MFC ActiveX控件问题

kyowl kyowl 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
现在碰到这么个问题,请大家帮忙看看:

一个MFC 单文档程序,其中有COM编程(主要是实现OPC客户端),用的是CoInitialEX(NULL, COINT_MULTITHREAD)初始化
的COM库。应该算是MTA套间吧。现另有一个用MFC开发的ActiveX控件,不知道是STA还是MTA的,估计MFC开发的都是STA的?
在这个单文档程序里无法使用该ActiveX控件(比如,把该控件放在对话框上,程序运行后,该对话框就无法正常弹出了,跟踪发现
调用DoModal函数立即返回了),改成CoInitial(NULL)初始化COM库或者用COINT_APARTMENTTHREAD参数调用CoInitialEX的
话可以正常使用该ActiveX控件。
不知道这是不是所谓的套间的冲突,如果需要使用MFC开发的ActiveX控件,是不是必须用STA线程模型的COM库才行,有没有
办法修改该ActiveX控件,使得在CoinitialEx(NULL, COINT_MULTITHREAD)下可以正常运行? 因为不想盲目改成CoInitial()
来初始化,MSDN上面说不应该用它,应该使用CoInitialEx函数。
...全文

相关推荐

评论 15
收藏 已收藏
分享
返回顶部
kyowl
ATL 3,248 成员 48,530 内容