我可以在非UWP应用程序中使用C++/WinRT吗?

5

我刚听说了C++/WinRT,很惊讶C++有这个运行时库,它像.NET一样添加了高级类包装器。但是我不想将我的应用程序分发为UWP应用程序。我能在非UWP应用程序中使用C++/WinRT吗?

1个回答

5

是的,C++/WinRT(以及WinRT)不仅限于UWP应用。您可以使用C++/WinRT编写控制台应用、桌面应用、服务甚至驱动程序。C++/WinRT是一个头文件库。它唯一的要求是使用支持C++17的现代C++编译器。


什么!!甚至驱动程序!!但这不取决于C++运行时和用户模式WinAPI函数吗?这些在内核模式下是不可用的,如果我错了,对不起,因为我对内核模式没有太多了解。 - dev54312
现在不需要内核模式驱动程序,用户模式驱动程序就可以执行许多传统上需要内核模式驱动程序才能完成的功能。微软为其一些新硬件设备提供了使用C++/WinRT编写的驱动程序。 - Kenny Kerr
2
@dev: 可从经典桌面应用程序调用的UWP API解释了哪些UWP API可以从经典桌面应用程序中调用。请注意,该文档是以UWP为中心编写的,可能会误导(例如,PasswordVault仅在从UWP应用程序调用时才按照文档工作)。 - IInspectable
一个问题:既然你必须包含“WindowsApp.lib”才能使用它,那么它怎么成为一个仅限头文件的库呢? - SWdV
它是一个仅包含头文件的库,这意味着它不需要编译自己的.cpp文件或添加任何运行时依赖项。但是,它确实依赖于操作系统功能(对于Windows Runtime),链接器必须知道如何解析这些操作系统功能。这就是WindowsApp.lib的作用。 - Kenny Kerr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接