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

时间:2017-04-28 11:17:16

标签: c++ dll windows-runtime uwp udp

我需要从Windows10的C#UWP应用程序调用win32 socket apis(在桌面和移动设备上运行相同的应用程序)因为win10 sock库存在一些问题 环境 - VS2015更新3.

我创建的项目结构为explaind here。 所以调用如下..

C#UWP app - > C ++ WindowsRuntimeComponent - >通用DLL(c ++)(包含来自c ++ win32 dll的代码)

在dll中我只创建一个UDP服务器并在recvfrom等待udp数据包(.....)

当我在Win 10移动设备(ARM)上运行应用程序时,此工作正常,但在选择的体系结构是x86或x64时不起作用。我没有在recvfrom()中重新获取任何udp数据包forx64 / x86,而bind()成功。

相同的代码如何适用于ARM而不适用于x64 / x86。可能是什么问题。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

等待在clinet机器上安装的安全补丁(Win 7 OS)是服务器在recvfrom()调用中等待的原因......

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