在 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 接口的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中从 C++ DLL 访问指针参数值

python3使用ctypes在windows中访问C和C++动态链接库函数示例

在 Linux 中从 Java 或 Python 访问扫描器(或者其他的,如果它有技术动机的话)(但 Windows 会很好)

C ++ - 通过getter函数在单独的类中从对象指针映射访问成员函数

如何在 Windows 中从 C++ 程序执行另一个 exe

在 C++ 中从外部访问嵌套类