如何从C++桌面应用程序调用UWP API



我想使用相应的UWP API访问蓝牙LE设备。然而,我的应用程序是一个"经典"C++应用程序(3D游戏),不能作为UWP应用程序运行。有办法做到这一点吗?根据此处的链接描述,这些API已经发布,但我不知道访问它们的步骤。我只找到了一些适用于Windows 8/8.1应用程序的帖子,其中包括Windows.winmd和Platform.winmd元数据文件,并设置了/ZW编译标志,但这似乎不适用于Windows 10。

您应该能够做到这一点,因为蓝牙类(例如BluetoothLEAdvertisement)标记为DualApiPartitionAttribute(可从桌面和UWP应用程序调用)。

使用一个旧的Win8.1桌面示例应该可以为调用API提供一个良好的起点,而不需要/ZW或引用winmd文件。桌面toast API示例就是一个很好的例子。

如果你走这条路,你可以使用经典的COM通过WRL助手创建UWP/WinRT类。

您可以使用您制作的web服务器和C++应用程序使用相同的服务器,如果UWP将信息发送到服务器,则它将信息发送给C++应用程序。为了安全起见,UWP不能使用桌面应用程序。

最新更新