2009-07-28 67 views
2

目前我使用的语句:如何用C++编程导入tlb文件?

#import "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\test.tlb" named_guids 

但我编程方式获取的文件夹路径。即"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"

我必须从此路径加载test.tlb,该路径驻留在变量say folderpath中。我必须通过连接folderpath+test.tlb以编程方式导入tlb。我怎样才能做到这一点?

+0

这看起来非常像一个愚蠢的http://stackoverflow.com/questions/1108537/how-to-import-a-tlb-and-a-namespace-in-c-at-runtime-when-some -condition-meets – sharptooth 2009-07-28 10:42:43

+0

你想完成什么任务? – sharptooth 2009-07-28 10:43:26

回答

2

您可以指定程序ID,而不是如果这能帮助,例如:

#import "progid:Outlook.Application" named_guids 

这胜过使用硬编码路径。

2

要在运行时以编程方式加载TLB文件(COM类型库),可以使用LoadTypeLibraryEx

在编译时导入的TLB应复制到一个众所周知且一致的位置,在此位置可在bild中找到它。如果您在团队环境中工作,您可能需要将TLB检入您的SCM系统,以便每个人都从相同的相对位置引用相同版本的TLB文件。

此外,TLB所在的路径可以作为包含目录(与用于头文件相同)提供给编译器。