通过c#UWP应用程序中的Win运行时组件的c ++ dll适用于Arm而不适用于x86 / x64

问题描述 投票:-1回答:3

我需要从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。可能是什么问题。

c++ dll windows-runtime uwp udp
3个回答
0
投票

如果套接字的两端都在同一台计算机上,则Windows应用商店应用程序无法侦听套接字或从UDP连接接收数据。在不同的计算机上运行服务器和应用程序。


0
投票

正在等待在客户端计算机上安装的安全补丁(Win 7 OS)是服务器在recvfrom()调用中等待的原因...

安装补丁并重新启动系统后,它运行正常。


0
投票

面对同样的问题。 recvfrom功能尚未从本地网络接收数据包。通过将privateNetworkClientServer功能添加到应用程序清单(https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations)解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.