【发布时间】:2011-10-14 10:48:47
【问题描述】:
我正在开发一个 FireBreath 项目,该项目制作了一个包含 ActiveX 控件功能的插件应用程序。我什至有 ActiveX 控件的源代码。
根据 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的路径。但是编译器还是报同样的错误,找不到文件。
【问题讨论】:
-
总是倾向于直接使用文件名,而不是希望编译器可以通过注册表找到它。如果您有单独的 .tlb 文件或嵌入它的 DLL,请指定它。
-
@Hans Passant 我也尝试过这种方法。但我猜它没有用。请检查我在问题末尾添加的第二点
标签: visual-c++ linker activex firebreath typelib