【问题标题】:How to use ActiveX dll in win32 C++ project visual studio 2010如何在win32 C++项目visual studio 2010中使用ActiveX dll
【发布时间】:2012-06-02 22:59:14
【问题描述】:

背景:供应商为我提供了 ActiveX Dll,没有头文件或 .tlb 文件或类似的东西。 我正在使用 Visual Stdio 2010 并使用 win32 C++。

我面临的问题是如何加载或引用dll?

我无法通过解决方案资源管理器引用 dll,因为它是非托管项目。 当我尝试使用#import 时,它给了我编译错误,提示找不到 XXX.tlb 文件。但我没有 .tlb 类型的文件。 我尝试的另一个选项是使用 OLE 查看器打开 dll 并复制 dll 定义,然后粘贴到我使用 Visual Studio 创建的 .idl 扩展名文件中。然后我在 idl 文件上执行 midl 以创建 .h 文件,但这也无济于事。当我尝试使用这些类时,它给了我“无法使用或引用抽象类”错误。

还有其他关于此事的问题,但不是直截了当的,答案没有标记为已回答或赞成。

我想知道在 Visual Studio 2010 的 win32 C++ 项目中加载 ActiveX dll 有哪些不同的方法,什么时候应该首选哪一种?如果有一个线程实际上解决了我的问题,请指出我。

谢谢

【问题讨论】:

  • 欢迎来到 SO,@DwightSchrute
  • 是的,使用#import 指令。不在 xxx.tlb 上,在 xxx.dll 上

标签: c++ visual-studio-2010 winapi dll activex


【解决方案1】:

如果您能够使用 OLE View 查看接口定义,则表示类型库已嵌入到 dll 资源中。因此,如果您使用#import "YourActiveX.dll",它应该可以工作。

【讨论】:

    【解决方案2】:

    你需要

    1. 使用 regsvr32 在 Windows 中注册 COM (Active X) 组件:regsvr32 my_dll.dll
    2. 然后使用 COM 与组件进行交互。这个is a good tutorial

    【讨论】:

    • 感谢您的教程,它很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多