如何在本机C ++项目中使用tlb文件

时间:2013-03-13 09:32:28

标签: visual-c++ com visual-studio-2005

我有一个tlb文件,其中包含一些我需要使用的函数声明。

如果我使用

#import "type_library.tlb"

我可以从我的代码中引用该函数:

tlb_namespace::required_function();

但是当我编译项目时,链接器说tlb_namespace :: required_function是一个未解析的外部符号。

我如何成功建立这种项目?

编辑

我在Dummy VBA访问项目中使用了相同的类型库。我已经添加了对类型库的引用,我注意到类型库中包含的一些函数被正确调用。但其中一些不是。 VBA表示它无法在相关的dll中找到它们的入口点。

这可以解释构建c ++应用程序时未解析的外部符号吗?

我还注意到失败的函数在tlb中声明如下:

UPPER_function_name

但在dll中声明如下:

Upper_function_name

这可能是问题吗?

是否有可能直接修改二进制tlb文件或dll来解决这种错误?

2 个答案:

答案 0 :(得分:4)

使用IDE查看TLB信息 使用此帮助:How to: View Type Library Information

在IDE:View->对象浏览器,单击“...”编辑自定义组件集,浏览TLB文件并添加到查看信息。

确认用于的命名空间。

答案 1 :(得分:0)

use the namespace to resolve the linker error: example: #import "<>" raw_interfaces_only using namespace <>

this will resolve the problem