Csharp/C#教程:依赖于C ++ / CLI的任何CPU依赖于本机C dll(c ++ / cli的任何cpu)分享


依赖于C ++ / CLI的任何CPU依赖于本机C dll(c ++ / cli的任何cpu)

这是我的问题。 我在C#中包装一个C dll。 为此,我首先编写了一个C ++ / CLI包装器。 本机C库链接到C ++ / CLI包装器。 (C ++ / cli项目中的链接器属性)。

以下是它现在的组织方式: – 原生C .lib:x86和64bit。

我的问题来自于我需要C#来定位“任何CPU”。 但是此选项在C ++ / CLI中不可用,因为它直接编译为本机代码。

我解决这个问题的想法是: – 在x86中编译C ++ / CLI包装器,然后更改配置并编译为64位。 当它编译时,我想告诉它基于平台采取哪个dll。 即:如果在64位编译,链接64位本机C dll,否则如果x86,链接x86本机C. – 完成后,我应该能够在我的C#平台中拥有任何CPU目标。 在这里,我将不再引用我的C ++ / CLI包装器项目,而是基于目标平台引用所需的dll。

我的问题是:

让我补充一点, C#项目是一个由x86或x64客户端使用的CLASS LIBRARY

我希望我的问题很清楚。 任何帮助将不胜感激!

UPDATE基于: .NET项目中的条件引用,可以摆脱警告? …

所以现在我已经使用条件编辑我的.csproj文件来引用dll,如下所示:

  False ..x64DebugAlibCppWrapper.dll   False ..DebugAlibCppWrapper.dll   

不幸的是,这不起作用,因为$(平台)设置为AnyCPU …

你所描述的被称为“并排组装”(同一组件的两个版本,一个32和另一个64位)…我认为你会发现这些有用:

编辑 – 根据评论:

在这里,您可以找到完全符合您的场景的演练(.NET DLL包装引用本机DLL的C ++ / CLI DLL) https://scottbilas.com/blog/automatically-choose-32-or-64-bit-mixed-mode-动态链接库/

上述就是C#学习教程:依赖于C ++ / CLI的任何CPU依赖于本机C dll(c ++ / cli的任何cpu)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1013554.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐