首页 > 移动平台 > 详细

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

时间:2020-09-24 10:11:00      阅读:69      评论:0      收藏:0      [点我收藏+]

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

昨天有时间,又突然想到这个问题,然后就继续在网上查资料,终于找到了解决方案: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 对象后,就可以正常的调用其方法与属性了。

 

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

 

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

原文:https://www.cnblogs.com/personnel/p/13722279.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!