在 Windows 环境中从 C 或 C++ 访问 COM 接口
Posted
技术标签:
【中文标题】在 Windows 环境中从 C 或 C++ 访问 COM 接口【英文标题】:Accessing COM interface from C or C++ in Windows environment 【发布时间】:2010-09-29 10:17:13 【问题描述】:我对组件对象模型规范比较陌生 - 我有一个简单的问题:
如何从 C 或 C++ 应用程序访问 COM 接口例如,访问 Microsoft Excel COM 接口以执行基本操作,无需用户干预。
亲切的问候
【问题讨论】:
【参考方案1】:实际上,您需要使用 COM 接口实例化对象。
这相当复杂,我们在这里无法回答。
这是一个很好的入门:http://www.codeproject.com/KB/COM/comintro.aspx
另一个:http://www.codeguru.com/cpp/com-tech/activex/tutorials/article.php/c5567
【讨论】:
【参考方案2】:如果您使用 C++,我建议您研究 ATL,如果使用 C,则使用 C++。使用#import 构造访问 DLL 或 EXE 中的 COM 对象非常容易。
【讨论】:
但这并不是这个人真正要问的。 虽然 kenny 可能没有回答所问的问题,但他确实给出了潜在问题的答案,这通常更有价值。 在哪里可以找到示例,使用 ATL 和 C++ - 提前致谢【参考方案3】:微软有一篇精彩的文章似乎解决了这个确切的问题。如果你想坚持直接使用 C++(即 MFC/ATL),你应该查看这篇文章,因为它有大量的示例代码:
How to automate Excel from C++ without using MFC or #import
【讨论】:
以上是关于在 Windows 环境中从 C 或 C++ 访问 COM 接口的主要内容,如果未能解决你的问题,请参考以下文章
python3使用ctypes在windows中访问C和C++动态链接库函数示例
在 Linux 中从 Java 或 Python 访问扫描器(或者其他的,如果它有技术动机的话)(但 Windows 会很好)
C ++ - 通过getter函数在单独的类中从对象指针映射访问成员函数