如何在某些条件满足时在运行时在c ++中导入tlb和命名空间?

时间:2009-07-10 09:07:05

标签: c++ com com-interop visual-c++

通常我们在程序的开头导入一个tlb文件,如

#include < stdio.h >
#import " sql.tlb "

但是我需要在程序中间满足特定条件时导入tlb文件

我该怎么办?加载dll有LoadLibrary()但加载tlb可以使用LoadLibrary()

因为tlb是使用.dll?

生成的

1 个答案:

答案 0 :(得分:8)

您可以使用LoadTypeLib在运行时加载类型库。

ITypeLib *ptlib;
LoadTypeLib("sql.tlb", &ptlib);

你使用ptlib所做的事情有点在空中,因为你并没有真正说出你想用它做什么。

ptlib是支持ITypeLib接口的对象。它有一些方法可以调用枚举和迭代类型库中的类型。通常,您将其与其他接口(如ITypeInfo等)结合使用。

我找到了更全面的教程样式文档here。此外,此link here还有一些细节,还显示了您需要使用的头文件和链接库。

Header                    oaidl.h, oaidl.idl
Library                   oleaut32.lib, uuid.lib
Windows Embedded CE       Windows CE 2.0 and later
Windows Mobile            Windows Mobile Version 5.0 and later