如何在C ++中加载已注册的COM DLL

时间:2014-01-23 14:57:42

标签: c++ dll windows-7 com

我有一个C++ COM dll,我已将其注册到regsvr32。我想在我的代码中使用dll的函数和类。不幸的是,我没有任何.h并且它没有.tlb文件。我有文档如何使用函数和类,但没有关于如何将DLL链接到我的项目的信息,所以我可以使用它。我是使用外部COM接口的新手,所以我不太能找到这些信息。

我已经尝试了#import "example.dll"(在项目文件夹中插入了dll,但它看起来不起作用我无法加载DLL错误。我的程序是混合CLR /非托管C ++。

有什么建议吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

如果提供了足够的信息,您可以自己在头文件中定义接口。我建议使用#import导入现有的COM类型库,并调查生成的.tlh文件以获取创意。例如,对于带有函数的简单接口,代码如下所示:

struct __declspec(uuid("Interface-Guid-with-Dashes")) IInterfaceName : IUnknown
{
  virtual HRESULT __stdcall get_Value (/*[out,retval]*/ long * result) = 0;
  virtual HRESULT __stdcall Execute (/*[in]*/ int value) = 0;
};