c++ - 将 COM dll 与非托管 C++ 一起使用

标签 c++ visual-c++ com

我对 Windows 编程还是有点陌生​​,有时会发现文档和教程令人困惑,有时甚至是矛盾的,但我希望我能理解一些,并纠正我的任何错误点。 我正在使用一个 API,其中包含的文档非常差。它由许多 DLL 组成,他们预计将添加这些 DLL 作为 VB 项目的引用(大多数用户是生物学家/化学家,对其他语言不是很熟悉,因此他们推荐 VB)。我一开始以为它们是.NET dll,但它们不能用 regasm 注册,并且不能使用它生成 tlb,但可以用 regsvr32 注册,所以我想这意味着它们是 COM dll...如果我错了,请纠正我.

我的理解是,由于这公开了 COM 对象,我应该能够将其与 .NET 语言和非托管 C++ 一起使用。我已经在 C# 中使用了它,但我也想在 unmanged c++ 中使用它。我看过这样的教程: http://cppkid.wordpress.com/2009/01/...nmanaged-code/ 导入类型库,但我没有这个,它没有随 API 提供。然而,使用 OLE 查看器我能够看到它们可用(嵌入在 dll 中?)。我想知道是否有人知道我如何从这里转到实际使用 c++ 中的 dll。

干杯并感谢您的帮助。

最佳答案

我想实现这一点的最简单方法是使用 #import指令:

#import <mygreatlib.dll>

还有其他方法,例如使用 #importProgID dll 的入口点类,或使用 MFC type library wizard

关于c++ - 将 COM dll 与非托管 C++ 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9182333/

相关文章:

c++ - 构建 C++ COM 对象以生成 UUID

模板类型参数的 C++ 常量

c++ - XE5 Ansi/Unicode 字符串链接器错误( Unresolved external 问题)

c# - 从 BackgroundWorker C# 调用的 CoInitialize

c++ - 如何在 mfc sdi 主窗口中添加编辑框和按钮?

visual-c++ - 一家非常小的公司的代码/文档管理

c++ - 如何结合RegisterDragDrop,RoInitialize在一个线程中一起工作?

c++ - 均衡字符串不同字符的最小步骤数

c++ - 什么是内部字段计数以及 SetInternalFieldCount 用于什么?

c++ - 列出线程