• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

c通过COM接口调用Excel.Application问题终于解决

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

这个问题在两个月之前就存在,并且当时试了各种办法花了一二天时间没解决,当时就放弃了。

昨天有时间,又突然想到这个问题,然后就继续在网上查资料,终于找到了解决方案:http://www.cplusplus.com/forum/windows/125996/3/

之前我写的代码:

hr = CoCreateInstance(&clsid, NULL, CLSCTX_ALL, &IID_IUnknown, (void**)&lpDisp);

可以正常的加载很多 com 组件,比如 ADODB.Connection 与 MSXML2.ServerXMLHTTP,并能成功调用其方法和属性。

但是,Excel.Application 可以加载,但无法调用其方法与属性。

 

通过上面提到的那篇文章提示,我改写了代码:

hr = CoCreateInstance(&clsid, NULL, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, &IID_IDispatch, (void**)&lpDisp);

也就是将 CLSCTX_ALL 更改为 CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER

将 IID_IUnknown 更改为 IID_IDispatch

加载 Excel.Application 对象后,就可以正常的调用其方法与属性了。

 

至于为什么会这样,我也没搞明白,你如果知道其中的原因,可以在评论中告诉我。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
备忘录——关于C#生成条形码发布时间:2022-07-13
下一篇:
C# as关键字发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap