我有一个tlb文件,其中包含一些我需要使用的函数声明。如何在本地C++项目中使用tlb文件
如果我使用
#import "type_library.tlb"
我可以correclty从我的代码中引用的函数:
tlb_namespace::required_function();
但是,当我编译项目链接说tlb_namespace :: required_function是一个未解决的外部符号。
我该如何成功构建这种类型的项目?
编辑:
我曾经在一个虚拟VBA项目的访问使用相同的类型库。我已经添加了对类型库的引用,并且我注意到正确调用了类型库中包含的某些功能。但其中一些不是。 VBA说它无法在相关的DLL中找到它们的入口点。
这可以解释构建C++应用程序时无法解析的外部符号吗?
我也注意到,失败函数在TLB中这样宣称:
UPPER_function_name
,但在DLL中的声明如下:
Upper_function_name
可这是问题?
是否有可能解决这种类型的错误,直接修改二进制tlb文件或DLL?
是'#进口 “type_library.tlb” '在你的项目中这个tlb唯一的#import指令。它是否与函数调用驻留在相同的cpp中?如何在生成的.tlh和.tli文件中定义'required_function'? – 2013-03-13 10:18:04
@ZdeslavVojkovic现在的项目是一个非常简单的项目,因此#import只是一个,它驻留在调用的同一个.cpp文件中。我试图生成.tlh和.tli文件......只有当我去项目属性\预处理器生成预处理文件时才显示它们。但是,我可能不会将它们以正确的模式添加到项目中,因为如果我这样做,我会得到另一个链接器错误。 – sblandin 2013-03-13 10:54:08
您不必添加它们。它们将在构建发布/调试文件夹期间创建,因此请在那里查找它们。 – 2013-03-13 11:01:42