如何在win32 C ++项目visual studio 2010中使用ActiveX dll

时间:2012-06-02 22:59:14

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

背景:供应商为我提供了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有哪些不同的方法,哪一个应该是首选?如果有一个线程实际上解决了我的问题,请指出我。

由于

2 个答案:

答案 0 :(得分:4)

如果能够使用OLE View查看接口定义,则意味着类型库嵌入到dll资源中。因此,如果您使用#import "YourActiveX.dll",它应该有用。

答案 1 :(得分:0)

你需要

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