2011-10-14 72 views
1

我正在开发一个FireBreath项目,该项目制作一个包装ActiveX控件功能的插件应用程序。我甚至有ActiveX控件的源代码。如何将类型库包含在visual C++项目中?

根据FireBreath示例页面中提供的示例示例,我编写了必要的包装类来包装Active X控件。

要调用的事件接口,类和函数从firebreath项目的ActiveX控件,这是我从firebreath示例页面下载该程序使用如下语句揭露ActiveX控件的项目类型信息

// Import the ActiveX control's typelib so we can easily call methods, etc. 
// on the ActiveX control. 
#import "PROGID:FBExampleCtl.xpcmdbutton" no_namespace, raw_interfaces_only$ 

但是,当我在我的程序中使用类似这样的东西时,它会给出一个错误,找不到包含在标题中的类型库。

所以我无法理解如何将ActiveX控件的类型库公开到我的项目中,并且还使用我的程序中定义的类型库中的方法和函数。

ps:1)我还安装了Oleview来检查类型库是否在系统中可用。从我还试图像

#import "GUID of the typelibrary". But this also didnot work. 

2替代)我也尝试

#import "myrequireddll.dll" 

和在调试环境中也提到的路径到DLL。但编译器仍然给出相同的错误,无法找到该文件。

+0

使用文件名总是青睐导入TLB文件直接在头(.h)文件,而不是直接希望编译器能找到它背透注册表中。指定.tlb文件,如果您单独拥有它或嵌入它的DLL。 –

+0

@Hans Passant我也试过这种方法。但它没有工作,我猜。请检查我在问题结尾添加的第二点 – kairav

回答

3

您可以使用以下#IMPORT指令

#import "C:\<PATH_TO_YOUR_TLB_FILE>.tlb" no_namespace, raw_interfaces_only

相关问题