为什么说 WinRT 取代了 Windows API
Why is it said that WinRT replaces the Windows API
在几乎所有关于新 WinRT API 的文章中,我都谈到了 "WinRT is the new API for Windows and replaces the old Win32 API" 这样的陈述。由于 WinRT 的目标是开发 Windows 商店应用程序,因此对我来说,这种说法似乎并不成立。
有很多我无法想象可以用 WinRT 完成的应用程序(例如 Microsoft Office、Adobe 产品、3D Designer 程序,甚至 Visual Studio)。这些应用程序仍然需要 Windows API(又名 Win32)的功能。
那么为什么经常有人说 WinRT API 取代了 Windows API?
我不确定是否经常有人说 Windows Runtime (WinRT) API 取代了 Win32 API。这不是微软所说的。在许多方面,WinRT 试图从 .NET Framework 的失败中吸取教训,以取代 Win32 API。这包括 Microsoft 不试图推动 WinRT 作为替代品,而只是一种新的做事方式。
您提到的应用程序无法使用 WinRT API 实现的原因实际上并不多。新的 API 包括许多旧的功能。您可以用 C++ 编写 WinRT 应用程序,生成的应用程序是本机可执行文件,而不是托管的。甚至可以使用 Win32 APIs.
的子集
虽然 Adobe 将其应用程序移植到 WinRT 上并没有什么好处,但预计 Microsoft 会这样做。他们重写了 Visual Studio 的大部分内容以使用 .NET 框架。如果说 WinRT API 使在新环境中实施更多功能变得切实可行的话。
最近由于一些原因,这种情况有所改变,但以下是您希望在当前 Windows 应用程序开发(大约 2017 年)中使用 WinRT 而不是 Win32 的原因的简要说明:
- UWP 应用程序利用 WinRT
- 可以使用 Desktop Bridge 将 Win32 应用程序转换为 UWP 应用程序
- Windows10秒requires all apps to go through the Windows Store
因此,使用 WinRT 将调用更少的时间来转换新的 Windows 10 S Store-only 应用程序范例的项目和代码。
关于 WinRT 与 Win32API 与 .NET,.NET 和 WinRT 都是用 Win32 构建的; IIRC,他们使用它的子集。至少这是 2012 年 ArsTechnica 在 Peter Bright 的文章 "Turning to the past to power Windows’ future: An in-depth look at WinRT" 中传达的内容。这就是这个堆栈图的来源,或者至少它在那里使用:
在几乎所有关于新 WinRT API 的文章中,我都谈到了 "WinRT is the new API for Windows and replaces the old Win32 API" 这样的陈述。由于 WinRT 的目标是开发 Windows 商店应用程序,因此对我来说,这种说法似乎并不成立。
有很多我无法想象可以用 WinRT 完成的应用程序(例如 Microsoft Office、Adobe 产品、3D Designer 程序,甚至 Visual Studio)。这些应用程序仍然需要 Windows API(又名 Win32)的功能。
那么为什么经常有人说 WinRT API 取代了 Windows API?
我不确定是否经常有人说 Windows Runtime (WinRT) API 取代了 Win32 API。这不是微软所说的。在许多方面,WinRT 试图从 .NET Framework 的失败中吸取教训,以取代 Win32 API。这包括 Microsoft 不试图推动 WinRT 作为替代品,而只是一种新的做事方式。
您提到的应用程序无法使用 WinRT API 实现的原因实际上并不多。新的 API 包括许多旧的功能。您可以用 C++ 编写 WinRT 应用程序,生成的应用程序是本机可执行文件,而不是托管的。甚至可以使用 Win32 APIs.
的子集虽然 Adobe 将其应用程序移植到 WinRT 上并没有什么好处,但预计 Microsoft 会这样做。他们重写了 Visual Studio 的大部分内容以使用 .NET 框架。如果说 WinRT API 使在新环境中实施更多功能变得切实可行的话。
最近由于一些原因,这种情况有所改变,但以下是您希望在当前 Windows 应用程序开发(大约 2017 年)中使用 WinRT 而不是 Win32 的原因的简要说明:
- UWP 应用程序利用 WinRT
- 可以使用 Desktop Bridge 将 Win32 应用程序转换为 UWP 应用程序
- Windows10秒requires all apps to go through the Windows Store
因此,使用 WinRT 将调用更少的时间来转换新的 Windows 10 S Store-only 应用程序范例的项目和代码。
关于 WinRT 与 Win32API 与 .NET,.NET 和 WinRT 都是用 Win32 构建的; IIRC,他们使用它的子集。至少这是 2012 年 ArsTechnica 在 Peter Bright 的文章 "Turning to the past to power Windows’ future: An in-depth look at WinRT" 中传达的内容。这就是这个堆栈图的来源,或者至少它在那里使用: