使用 C++/CX for Desktop Windows 的 XAML 应用程序

Posted

技术标签:

【中文标题】使用 C++/CX for Desktop Windows 的 XAML 应用程序【英文标题】:XAML apps using C++/CX for Desktop Windows 【发布时间】:2013-11-05 09:42:23 【问题描述】:

我已经尝试使用 C++ 为 Windows 8 应用商店应用程序进行 XAML UI 编程。我真的很喜欢开发人员体验、XAML 设计器以及我可以获得具有现代丰富用户界面和高性能的纯本机应用程序这一事实。

我想使用 C++ for Desktop Windows(非商店世界)创建类似的 XAML 应用程序。我该怎么做呢?多年来,我一直在等待 Windows 桌面的原生 UI 堆栈,它比 MFC 更新,并且比直接 Win32/GDI 编程的级别更高。

【问题讨论】:

+1 我可以看到答案:QtMFCWTL... 对我们较低级别的人来说就是这样。还有一些其他的,但它们已经荒废(很多年了)并且非常专业。 我们,真正的原生 C++ 人,已经落后...但是 C++ 语言本身正在变得更好,编译器是...所以我们需要推出自己的。 【参考方案1】:

Silverlight 和 WPF 都使用 XAML 和代码隐藏来实现应用。两者都未得到维护,但如果您想使用相同的技术,它就在那里。

正如 Jeff McClintock 所提到的,Microsoft 已宣布未来对 Windows 8 的更新将允许应用程序在桌面上运行,但我预计这只是一个窗口更改,应用程序仍将在该商店的受限沙盒中运行应用程序在其中运行。也许微软会推出另一个基于桌面的 UI 框架,并在三年内支持它,然后将其淘汰。

WTL 比 MFC 更新,尽管它的最后一次更新是在六年前。我个人推荐 Qt,因为它允许访问本机 Win32 调用(这样你就可以做 Win32 应用程序通常想做的任何怪事),同时仍然有一个丰富、强大的 UI 框架可供构建。

【讨论】:

我正在寻找一个可以构建看起来相当现代的桌面应用程序的 C++ 解决方案。看起来 Qt 是唯一的解决方案【参考方案2】:

Windows 8.1 的未来更新将允许 Windows 8 应用商店应用程序在桌面上的窗口中运行,并像 Win32 应用程序一样出现在任务栏上。这允许商店应用程序的行为很像桌面应用程序。 MS 暗示商店应用程序 XMAL 将在未来某个时候提供给桌面应用程序。

http://www.gottabemobile.com/2014/04/02/microsoft-listens-to-users-start-menu-and-windowed-apps-are-on-the-way/

【讨论】:

【参考方案3】:

Codejock 在 MFC(原生 C++)中有一些标记语言支持。

http://www.codejock.com/inc/img/downloads/samples/toolkitpro_markupsample_full.png

【讨论】:

【参考方案4】:

我正在研究的是用于本机 C++ 应用程序的 C++/WinRT,这些应用程序将 WinRT 框架用于 UWP 应用程序,至少适用于 Windows 10。有关起点,请参阅 C++/WinRT in the Microsoft Dev Center。

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

该系列的介绍文章接着说:

对于使用 C++ 创作和使用 Windows 运行时 API,有 C++/WinRT。这是 Microsoft 推荐的 Windows 替代品 运行时 C++ 模板库 (WRL) 和 C++/CX。

我首先开始使用 C++/CX 使用适用于 Windows 10 的 UWP 应用程序,它使用带有 ref 的 Microsoft Visual Studio C++ 扩展以及 .NET 世界中的所有 C# 类扩展。

我现在正在使用 Visual Studio 2017 和 C++/WinRT 框架,该框架使用原生 C++17 功能以及 SDK。我相信您也可以将 C++/WinRT 与最新更新的 Visual Studio 2015 一起使用,更新 3。

还有一个可从 Visual Studio 中的扩展和更新中获得的包 C++/WinRT,其中包含几个适用于几种不同应用程序类型的 Visual Studio 模板。

C++/WinRT 似乎正在进行中。最好将 Visual Studio 2017 与最新的 Windows 10 版本 1803 一起使用,其中包含 SDK 和 XAML 编辑器工作正常。我在使用早期版本的 Windows 10 企业版时遇到了 XAML 编辑器的问题(IT 服务维护自己的更新服务器,并且是一些落后于前沿的版本)。

另请参阅我的问题synchronizing SDK with Windows 10 update and using WinRT with Standard C++,其中包含本文中测试程序的更新版本C++ - Introducing C++/WinRT。

【讨论】:

以上是关于使用 C++/CX for Desktop Windows 的 XAML 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Docker zookeeper 集群 for Docker desktop (win)

docker学习1-win10 64位专业版-安装Docker Desktop for Windows

从本地C ++代码调用C ++ CX

使用 Docker-Desktop for Windows,如何配置 sysctl 参数以渗透重新启动?

即使使用 Win32GUI,cx_Freeze 也会闪烁 cmd 窗口

LibClamAV 错误:cl_load:没有这样的文件或目录:C:\Users\my-pc\Desktop\clamav-win32-clamav-0.99\contrib\msvc\Debug\W