通过c#UWP应用程序中的Win运行时组件的c ++ dll适用于Arm而不适用于x86 / x64
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过c#UWP应用程序中的Win运行时组件的c ++ dll适用于Arm而不适用于x86 / x64相关的知识,希望对你有一定的参考价值。
我需要从Windows10的C#UWP应用程序调用win32 socket apis(在桌面和移动设备上运行相同的应用程序)因为win10 sock库有一些问题环境 - VS2015 Update 3。
我创建项目结构作为explaind here。所以呼叫如下..
C#UWP app - > C ++ WindowsRuntimeComponent - > Universal dll(c ++)(包含来自c ++ win32 dll的代码)
在DLL中我只是创建一个UDP服务器并在recvfrom等待udp数据包(.....)
这在我在Win 10移动设备(ARM)上运行应用程序时工作正常,但在选择的体系结构是x86或x64时不起作用。当bind()成功时,我不会在recvfrom()中重新获取任何udp数据包forx64 / x86。
相同的代码如何适用于ARM而不适用于x64 / x86。可能是什么问题。
如果套接字的两端都在同一台计算机上,则Windows应用商店应用程序无法侦听套接字或从UDP连接接收数据。在不同的计算机上运行服务器和应用程序。
正在等待在客户端计算机上安装的安全补丁(Win 7 OS)是服务器在recvfrom()调用中等待的原因...
安装补丁并重新启动系统后,它运行正常。
面对同样的问题。 recvfrom功能尚未从本地网络接收数据包。通过将privateNetworkClientServer功能添加到应用程序清单(https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations)解决了该问题。
以上是关于通过c#UWP应用程序中的Win运行时组件的c ++ dll适用于Arm而不适用于x86 / x64的主要内容,如果未能解决你的问题,请参考以下文章
UWP C# 管道客户端无法连接到 Win32 C++ 管道服务器
在UWP中,我们可以使用动态编译和使用C#Reflection的成员调用动态编译和调用UWP中的新页面吗?
装Kingbase ES V7时为啥依赖检测时,总是提示我说Microsoft Visual C++ 2008未通过检测???