大佬教程收集整理的这篇文章主要介绍了.net – 跨CPU体系结构从Windows 10 Universal App引用C Dlls,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
更详细的解释;
我正在尝试编写通用Windows应用程序(新的Windows 10样式).这意味着我有一个项目可以添加对外部组件的引用.
我需要一些图像处理的东西,最好作为第三方组件购买,而不是在内部开发.有三个SDK可以从支持WinRT的第三方获得,但没有一个专门支持UWA.但是,WinRT SDK对Windows Phone和Windows桌面应用程序都有不同的二进制文件.二进制文件都是从C/C++源创建的.对于较旧的“通用”应用程序来说这很好,因为有一个单独的电话和桌面项目,所以你可以在每个项目中引用不同的组件,但现在只有一个项目可以添加引用.
我问过一家供应商有关UWA的支持,他们声称这是不可能的,他们无法创建一个二进制文件来定位两个平台(arm vs x86),他们不知道我的UWA在应用程序时引用正确文件的方法是为适当的架构而构建的(这是我认为应该发生的).
我假设有一些问题(也许是在一个winmd文件中?),’嘿,这里是不同cpu体系结构的相同dll的两个副本,选择你正在构建的那个’并且只要公共API与app匹配只是使用正确的?
这有解决方案吗?有谁知道这种引用应该如何工作?或者我只是运气不好?
谢谢.
在csproj文件中,您必须转到底部并找到这些部分.这些部分引用了您的所有文件.
项目定义中有一个特殊@L_674_39@,允许您告诉Visual studio根据某些条件执行某些特定操作.然后,您可以创建一个引用DLL依赖项的组.
您的csproj文件将如下所示:(我删除了所有非相关的东西)
<Project> <PropertyGroup /> <PropertyGroup /> <PropertyGroup /> <ItemGroup /> <ItemGroup /> <Choose> <When Condition=" '$(Platform)' == 'x86' "> <ItemGroup> <Content Include="..\Binaries\x86\MyLib1.winmd"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> <Content Include="..\Binaries\x86\MyLib2.winmd"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> </ItemGroup> </When> <When Condition=" '$(Platform)' == 'ARM' "> <ItemGroup> <Content Include="..\Binaries\ARM\MyLib1.winmd"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> <Content Include="..\Binaries\ARM\MyLib2.winmd"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> </ItemGroup> </When> </Choose> <Import /> <Import /> </Project>
我已经在VS2013上用于一些Windows Phone项目(使它们在手机和模拟器上都可以工作).我没有在Windows 10和VS2015上进行测试,但它应该以相同的方式工作.
以上是大佬教程为你收集整理的.net – 跨CPU体系结构从Windows 10 Universal App引用C Dlls全部内容,希望文章能够帮你解决.net – 跨CPU体系结构从Windows 10 Universal App引用C Dlls所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。