繁体   English   中英

根据项目配置在C ++ / CLI包装器中引用x86和x64 DLL?

[英]Referencing x86 and x64 DLL in C++/CLI wrapper based on project configuration?

我仍然有一个突出的问题,我不确定答案。

当我按照教程为我的DLL创建C ++ / CLI包装器时,我不得不向项目添加对DLL的引用:

参考

没问题,就这样。 但事情就是这样,参考路径是:

D:\\ My Programs \\ 2017 \\ MSAToolsLibrary \\ MSAToolsLibrary \\ bin \\ x86 \\ Release \\ MSAToolsLibrary.dll

我实际上有两个DLL文件。 一个用于x86,另一个用于x64。 我可以设置包装器项目文件,使其分别根据构建配置引用x64文件和x86文件吗?

更新

这是我的VCXPROJ文件:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 [snip]
  <ItemGroup>
    <Reference Include="MSAToolsLibrary">
      <HintPath>..\..\MSAToolsLibrary\MSAToolsLibrary\bin\x86\Release\MSAToolsLibrary.dll</HintPath>
    </Reference>
 [snip]
</Project>

我可以看到对DLL的引用,但我分别看不到x64和x86的特定引用。

更新2

好的,我将包装器项目添加到了我真正的解决方案中。 x64构建正常:

x64 1

x64 2

但是当我将配置设置为x86时,我遇到了一些问题。 引用上有一个小三角形,属性中有错误:

x86 1

x86 2

正如您将从我对现有答案的评论中看到的那样,我在提示中使用了$(PlatformTarget) 但似乎还有其他地方我们需要调整我无法解决的参考资料。

更新3

好的,如果我在Visual Studio中自己打开项目,那么我可以切换平台。 但是当项目是我的大项目的一部分时,它不喜欢它。 那是它失败的时候。

更新4

有趣的是,如果我在我的主项目中,并设置为x86平台,然后在这个添加的项目中我删除了对DLL的引用并再次添加它(x86风格):

添加参考

我在本地解决方案中没有这个问题。 在我的主项目解决方案之外,似乎我必须在本地解决方案中进行开发并在那里进行编译。 :(

编辑<HintPath>

  <HintPath>..\..\MSAToolsLibrary\MSAToolsLibrary\bin\$(Platform)\$(Configuration)\MSAToolsLibrary.dll</HintPath>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM