使用C++/CX编写桌面Windows的XAML应用程序

13

我曾经使用C++开发Windows 8商店应用,进行了XAML UI编程的实验。我非常喜欢这种开发体验,XAML设计师以及能够获得具有现代丰富用户界面和高性能的纯本地应用。

我想使用C++为桌面版Windows(非商店环境)创建类似的XAML应用程序。我该怎么做?多年来,我一直在等待一个比MFC更新、比直接Win32/GDI编程更高级的Windows桌面本地UI堆栈。


1
+1 我能看到答案:QtMFCWTL……这就是我们低级开发人员所拥有的了。还有一些其他的,但它们已经被遗弃(很多年了),而且非常专业化。我们真正的本地 C++ 开发人员已经被落下了……但是 C++ 语言本身正在变得更好,编译器也在进步……因此我们需要自己动手。 - CodeAngry
4个回答

2
Silverlight和WPF都使用XAML和代码作为实现应用程序的工具,但两者目前均未得到支持。如果你想要使用相同的技术进行开发,仍然是有可能的。
如Jeff McClintock所提到的,微软已经宣布未来的Windows 8更新将允许应用程序在桌面上运行,但我认为这只是一个窗口管理的变化,而应用程序仍将在受限制的沙盒环境中运行,就像商店应用程序一样。也许微软会再次推出基于桌面的UI框架,并支持它三年后再杀掉它。
WTL比MFC更新,尽管其最近的更新是六年前。个人建议使用Qt,因为它允许访问本地Win32调用(从而可以执行Win32应用程序通常需要的任何操作),同时还具有丰富、强大的UI框架可供构建。

我正在寻找一种能够构建现代化桌面应用程序的C++解决方案。看起来Qt是唯一的选择。 - Raman Sharma

1

1

0
我所关注的是C++/WinRT,它是用于使用WinRT框架的本机C++应用程序的完全标准的现代C++17语言投影,至少适用于Windows 10上的UWP应用程序。请参见Microsoft Dev Center中的C++/WinRT作为起点。

C++/WinRT是一个完全标准的现代C++17语言投影,用于Windows Runtime(WinRT)API,实现为基于头文件的库,并旨在为您提供对现代Windows API的一流访问权限。使用C++/WinRT,您可以使用任何符合标准的C++17编译器编写和使用Windows Runtime API。Windows SDK包括C++/WinRT;它是在版本10.0.17134.0(Windows 10,版本1803)中引入的。

系列文章中的介绍继续说道:

对于使用C++编写和使用Windows Runtime API,有C++/WinRT。这是微软推荐的替代Windows Runtime C++模板库(WRL)和C++/CX。

我最初使用C++/CX开始开发Windows 10的UWP应用程序,它使用Microsoft Visual Studio C++扩展和ref以及所有C#的扩展在.NET世界中使用C++。

现在我正在使用Visual Studio 2017和C++/WinRT框架,它使用本地C++17功能以及一个SDK。我相信你也可以使用Visual Studio 2015与最新的更新(更新3)一起使用C++/WinRT。

在Visual Studio的“扩展和更新”中还有一个可用的包,C++/WinRT,其中包含几个不同应用程序类型的Visual Studio模板。

C++/WinRT似乎还在不断改进中。如果您使用最新的Windows 10版本1803和Visual Studio 2017,则最好。该版本包含SDK,XAML编辑器运行良好。我曾经在工作中使用早期版本的Windows 10 Enterprise时遇到过XAML编辑器的问题(IT服务维护自己的更新服务器,并且落后于最新版本)。

请参考我的问题 将SDK与Windows 10更新进行同步,并使用标准C++与WinRT,该问题中提供了一个测试程序的更新版本。你也可以看看这篇文章C++ - 介绍C++/WinRT


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