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

Cut*_*ute 2 c++ com com-interop visual-c++

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

#include < stdio.h >
#import " sql.tlb "
Run Code Online (Sandbox Code Playgroud)

但是当我在程序中间满足某些条件时,我需要导入一个tlb文件

我怎样才能做到这一点.加载dll有LoadLibrary()但是加载tlb我可以使用LoadLibrary().

因为tlb是使用.dll生成的?

180*_*ION 8

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

ITypeLib *ptlib;
LoadTypeLib("sql.tlb", &ptlib);
Run Code Online (Sandbox Code Playgroud)

你所做的ptlib就是在空中,因为你没有真正说出你想用它做什么.

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

我在这里找到了一个更全面的教程样式文档.此外,此链接还有一些更详细的信息,还显示了您需要使用的头文件和链接库.

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

  • @Cute - 在上面的答案中,它表示LoadTypeLib的部分,称为链接.尝试点击它. (2认同)