我有一个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)\
答案 0 :(得分:0)
可能是此.tlb文件的路径(“ C:\ MyProjects \ Project \ x64 \ Release \ myfile.tlb”) 不会添加到'$(SolutionDir)$(Platform)\ $(Configuration)\'中。
请检查“ $(SolutionDir)$(平台)\ $(配置)\”的值,并向其中添加.tlb文件的路径,从而帮助Visual Studio查找.tlb文件。 或者,可以将.tlb文件复制到“ $(SolutionDir)$(平台)\ $(配置)\”中的目录之一
另一个建议:还检查.tlb是否正确注册。
希望这会有所帮助!