为什么说WinRT取代了Windows API

时间:2015-07-07 16:01:59

标签: windows api winapi windows-runtime desktop-bridge

在几乎所有关于新WinRT API的文章中,我都发表了类似“WinRT是Windows的新API并取代旧的Win32 API”的陈述。由于WinRT的目标是开发Windows应用商店应用程序,因此这个声明似乎并不成立。

有许多应用程序我无法想象用WinRT完成(例如Microsoft Office,Adobe Products,3D Designer程序甚至Visual Studio)。这些应用程序仍然需要Windows API(又名Win32)的功能。

为什么经常说,WinRT API取代了Windows API?

2 个答案:

答案 0 :(得分:5)

我不确定它是否经常说Windows Runtime(WinRT)API取代了Win32 API。这不是微软所说的。在许多方面,WinRT试图从.NET Framework的失败中学习取代Win32 API。这包括微软不试图推动WinRT作为替代品,而只是一种新的做事方式。

实际上,您提到的应用程序无法使用WinRT API实现的原因并非如此。新的API包含了许多旧功能。您可以用C ++编写WinRT应用程序,生成的应用程序是本机可执行文件,而不是托管可执行文件。甚至可以使用Win32 API的子集。

虽然Adobe通过将其应用程序移植到WinRT几乎没有收获,但预计微软会这样做。他们重写了大部分Visual Studio以使用.NET框架。如果有的话,WinRT API可以在新环境中实现更多功能。

答案 1 :(得分:4)

这种情况有所改变,最近由于几个原因,但是在目前的Windows应用程序开发(大约2017年)中,您想要在Win32上使用WinRT的原因已经简化了:

  1. WinWT由UWP应用
  2. 使用
  3. 可以使用Desktop Bridge将Win32应用程序转换为UWP应用程序
  4. Windows 10 S requires all apps to go through the Windows Store
  5. enter image description here

    Ergo,使用WinRT将花费更少的时间来转换新的Windows 10 S Store应用程序范例的项目和代码。

    关于WinRT与Win32API与.NET,.NET和WinRT都部分使用Win32构建; IIRC,他们使用它的子集。至少那是2012年在Peter Bright的文章"Turning to the past to power Windows’ future: An in-depth look at WinRT"中从ArsTechnica传达的内容。这个堆栈图来自哪里,或者至少在那里使用过:

    enter image description here