你能用C ++ / CX编写正常的Windows应用程序吗?

时间:2015-02-25 22:19:30

标签: c++ windows-runtime

或者您是否仅限于“Metro风格”应用程序和Windows应用商店应用程序?

起初,我认为C ++ / CX是C ++ / CLI的一个很好的替代品,因为它有一些漂亮的C#-esque关键字('sealed','partial'),它也可以编译为本机代码,而不是使用。净。但在线阅读,我所能找到的是有关Windows应用商店应用和Metro风格应用的信息......

此外,WinRT仅适用于Windows 8及更高版本吗?

2 个答案:

答案 0 :(得分:11)

是的,您可以使用C ++ / Cx编写桌面应用程序,并可以在桌面应用程序中使用某些Windows运行时API(文档和标题中标记为桌面应用程序的那些)。见Windows Runtime APIs for desktop apps。 MSDN上的Enumerate app packages sample演示了如何使用C ++ / Cx在桌面应用程序中调用Windows Runtime API。

Windows运行时Xaml类不适用于桌面应用程序,但由于您可以混合使用C ++和C ++ / Cx,因此您可以从应用程序中调用典型的桌面UI API(Win32,MFC,DirectX等)。也使用C ++ / Cx。

C ++ / Cx实际上不是C ++ / CLI的替代品。除了使用一些类似的语法,他们有不同的目标。如您所知,C ++ / Cx不是托管语言,因此无法用于调用托管代码。选择C ++ / CLI的主要原因是与托管代码互操作。如果您需要从桌面应用程序调用Windows运行时,C ++ / Cx是一个不错的选择。

Windows运行时仅在Windows 8及更高版本中可用。

答案 1 :(得分:-2)

维基百科页面C++/CX上的第一行是

  

C ++ / CX(组件扩展)是Microsoft的C ++编译器的语言扩展,它使 C ++程序员能够为新的Windows Runtime平台或WinRT 编写程序。 (强调添加)

因此,C ++ / CX似乎是WinRT,因为C ++ / CLI是.Net / CLR。 I.e C ++ / CX用于使用WinRT编写Windows应用程序。 WinRT适用于Windows 8商店和城域应用程序。

您可以使用C ++编写常规的Windows API应用程序,因此您可以在C ++ / CX中执行相同的操作。但它可能不容易或不可能,但由于扩展是WinRT特有的,你为什么要这样做。 C ++ / CLI编译为CLR字节码,与公共语言运行库一起运行。让C ++ / CX生成一个不依赖于WinRT的可执行文件,是问题的关键。

SO帖子表明是的WinRT仅适用于Windows 8.(大概也是Windows 10)。

相关问题