如何使用相对路径将COM .tlb文件导入C ++文件?

时间:2019-06-20 07:06:32

标签: c++ import com unmanaged

我有一个COM .tlb文件,并且我想导入到我的c ++项目中而不使用tlb文件的绝对路径。我该怎么办?

我正在使用Visual Studio,并且有一些C#和C ++项目。我的C#项目之一注册COM对象并生成.tlb文件。之后,我想将此文件与另一个C ++项目一起使用。所以我尝试导入它。使用绝对路径(.tlb文件位置是我的解决方案输出目录)可以正常工作(1),并且我也可以使用相对路径(2),但是要用于导入的是(3)。这样做的主要原因很简单,我想避免在代码中使用Debug或Release路径。我为此找到了一个解决方案(4),但是当我尝试构建解决方案时(例如在发布模式下),那么它也想读取Debug文件,我认为这不是最好的解决方案(首先,我必须构建我在Debug and Release中的COM C#项目,此后,我将能够构建我的整个解决方案。所以我的问题是,哪个C ++项目选项对#import具有影响?我试图将VC ++目录->库目录设置为$(SolutionDir)$(Platform)\ $(Configuration)\,但是它不起作用。谢谢您的提前帮助!

(1)     #import“ C:\ MyProjects \ Project \ x64 \ Release \ myfile.tlb 要么     #import“ C:\ MyProjects \ Project \ x64 \ Debug \ myfile.tlb

(2)     #import“ .. \ x64 \ Release \ myfile.tlb” 要么     #import“ .. \ x64 \ Debug \ myfile.tlb”

(3)     #import“ myfile.tlb”

(4)     #ifdef发布     #import“ .. \ x64 \ Release \ myfile.tlb”     #其他     #import“ .. \ x64 \ Debug \ myfile.tlb”     #endif

当我尝试通过以下选项使用#import“ myfile.tlb”时: VC ++目录->库目录到$(SolutionDir)$(Platform)\ $(Configuration)\

1 个答案:

答案 0 :(得分:0)

可能是此.tlb文件的路径(“ C:\ MyProjects \ Project \ x64 \ Release \ myfile.tlb”)  不会添加到'$(SolutionDir)$(Platform)\ $(Configuration)\'中。

请检查“ $(SolutionDir)$(平台)\ $(配置)\”的值,并向其中添加.tlb文件的路径,从而帮助Visual Studio查找.tlb文件。 或者,可以将.tlb文件复制到“ $(SolutionDir)$(平台)\ $(配置)\”中的目录之一

另一个建议:还检查.tlb是否正确注册。

希望这会有所帮助!

相关问题