【问题标题】:WinRT as a replacement of Win32 APIWinRT 作为 Win32 API 的替代品
【发布时间】:2012-02-20 06:14:46
【问题描述】:

互联网上有很多博客说winrt 是win32 api 的替代品。这是真的吗?即使我读到为 Metro Application 开发的应用程序也使用 winrt。所以我理解正确吗,那些必须通过winrt的metro应用程序和经典应用程序必须通过win32 api的应用程序。请有人验证我的结论。

【问题讨论】:

    标签: windows-8 windows-runtime


    【解决方案1】:

    免责声明:我没有以任何方式参与 Windows 8 的设计或实施,我只关注 Windows 8 的新闻。我拥有没有特权信息。

    winrt 是 win32 api 的替代品

    微软已经明确表示 WinRT 不是 Win32 的替代品,而是另一种开发应用程序的方式。也就是说,ARM 上没有 Win32 实现(至少第三方开发人员可以访问)。正如 Steve Sinofsky 解释的那样,ARM 上的 Windows 将仅支持 WinRT,而不支持 Win32here

    metro 应用程序必须通过 winrt 和经典应用程序必须通过 win32 api 的应用程序

    完全正确。

    【讨论】:

    • 请注意,Metro 在 x86 和 ARM 上都支持相当有限的 Win32 子集 (msdn.microsoft.com/en-us/library/windows/apps/br205757.aspx)。
    • 始终添加“尚未”,因为这是获得和保护市场份额的简单营销决策。
    • 某些 WinRT API 只能由 Windows 应用商店应用程序调用,而另一些只能由桌面应用程序调用。还有一些可以被任何一个调用。文档说明了需求部分中支持的内容。
    【解决方案2】:

    Win32 仍然存在。 WinRt 包装它们并将它们的类型转换为使用语言的本机类型。 C++ Metro 应用程序仍然可以访问有限的 Win32 API 集

    【讨论】:

      【解决方案3】:

      WinRT 基本上是 Win32 (COM) 的包装器,供 Metro Stype 应用程序(Projections for Native、CLR、Javascript)使用,这些应用程序是为沙盒环境设计的,主要用于触摸屏感知应用程序(尽管可以破解它们以在桌面上工作)。 Metro Style 应用程序的一些 API 仍在使用经典的 COM API(例如 DirectX)。 那么,WinRT 建立在 Win32 之上,如何替代它呢? ;-)

      【讨论】:

      • 如果您认为winrt 与COM 相关,那么您就忽略了winrt 的大部分功能。是的,在 winrt 的内部深处,使用了 COM 构造。但是开发人员永远不应该看到这一点。相反,他们使用提供自然和熟悉的 API 表面的语言投影 - API 感觉就像使用该语言的开发人员习惯使用的 API。
      • @LarryOsterman OMG Larry Osterman 回复了我的帖子 faints
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-22
      • 2023-02-09
      • 2021-09-27
      • 2012-09-26
      • 2012-08-19
      • 2010-10-16
      相关资源
      最近更新 更多