首页 > 解决方案 > 有没有办法绕过对某些 API 的 UWP 限制?

问题描述

我已经尝试过创建一个 Windows-10 C++ UWP xaml 应用程序。

我选择这个平台的动机是避免使用多种语言(用于 WPF gui 的 C#,用于互操作的 C++-CLI)并且仅将 C++ 与一些 C++-CX 一起使用。

我的目标是创建一个用于调试 PCI 驱动程序的内部工具,而不是创建某种高度安全的 Windows 商店应用程序。

在我看来,UWP 应用程序在使用某些 WIN API 函数时非常严格。例如,我不能使用我的静态库,因为它们使用 CreateFile 和 DeviceIoControl。我收到一条错误消息:error C3861: 'CreateFileA': identifier not found.

即使我以某种方式设法链接我的本机库(通过在 .cpp 文件中隐藏这些函数的使用)这些函数似乎在运行时失败。

反正有没有绕过这些限制?我只想将此平台用于其 C++ UI 功能。

标签: uwpwin-universal-appwindows-10-universalc++-cxc++-winrt

解决方案


关于这些坏消息我很遗憾。事实上,如果您不符合上述限制,您的选择不是 UWP。改为使用 WPF。

UWP 应用旨在用于集中控制。因此,您可以通过 Store 分发它们,限制它们的文件系统访问,管理内存占用和生命周期等。您可以将其视为尝试停止 Win32 API(它相当陈旧,容易受到黑客攻击且无政府主义)并使用沙-拳击作为替代者。


推荐阅读