【问题标题】:Call a c++ activex dll from plain c code从纯 c 代码调用 c++ activex dll
【发布时间】:2012-09-06 05:57:48
【问题描述】:

我有一个从 Visual Studio 2005 构建的 c++ 活动 x dll,我需要从必须在 mingw32 编译器中编译的“c”代码调用它。

是否可以从 c 调用 c++ active x dll 或者我必须将 dll 从 activex 转换为 win32。

请给我你的建议。

【问题讨论】:

  • 很好奇,为什么只需要使用 C? mingw32 可以很好地编译 C++。如果您有一个现有的 C 项目,添加一些 C++ 文件作为与 ActiveX/COM 对象交互的包装器可能会更简单。
  • 我有一个c的源代码项目,c++包装器写起来很乏味。

标签: c++ c winapi activex mingw


【解决方案1】:

ActiveX 是 COM,COM 本质上是一个 C API(因为它是 Win API 的一部分,而 Win API 本身就是一个 C API)所以这是可能的。但是它需要对 COM 有很好的理解。可以在这里找到一个很好的起点: http://www.codeproject.com/Articles/13601/COM-in-plain-C

【讨论】:

  • 反正我已经把它改成了win32,因为我们的其他部分项目需要win32 dll
【解决方案2】:

Active-X 与 COM 相同/建立在 COM 上(我不会详细介绍)。由于 COM 的目的是允许跨语言组件,那么是的,您可以从 C 调用 COM 对象。

但是,我不确定它是否容易,因为您不会有任何简单的向导来导入和创建包装类或其他工具支持。

Here is a blog 介绍了一些细节。可能值得一看。

【讨论】:

  • 我没有找到博客的链接,请检查一下
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多