Windows 8 WinRT作为Win32 API的替代品

Windows 8 WinRT作为Win32 API的替代品,windows-8,windows-runtime,Windows 8,Windows Runtime,在互联网上有很多博客说winrt是win32 api的替代品。这是真的吗?甚至我也读到为Metro应用程序开发的应用程序使用winrt。因此,我是否正确理解,那些属于metro应用程序的应用程序必须通过winrt&经典应用程序必须通过win32 api。请有人验证我的结论。免责声明:我没有以任何方式参与Windows 8的设计或实现,我只关注Windows 8新闻。我没有特权信息 winrt是win32 api的替代品 微软已经明确表示,WinRT不是Win32的替代品,而是开发应用程序的另一种

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

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

winrt是win32 api的替代品

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

那些属于metro应用程序的应用程序必须通过winrt&经典应用程序必须通过win32 api


绝对正确。

WinRT基本上是Win32(COM)的包装器,可供Metro Stype应用程序(本机、CLR、Javascript的投影)使用,这些应用程序是为沙盒环境设计的,主要用于触摸屏感知应用程序(尽管可以在桌面上使用)。Metro风格应用程序的一些API仍然使用经典的COM API(例如DirectX)。
那么,如果Win32是基于WinRT构建的,WinRT如何取代它呢?;-)

Win32仍然存在。WinRt包装它们并将其类型转换为消费语言的本机类型。C++城域网应用程序仍然可以访问有限的Win32 API的一个集合:P>注意,Metro确实支持Win32()的相当有限子集,在x86和ARM上。因为这是一个获取和保护市场份额的简单营销决策。一些WinRT API只能由Windows应用商店应用程序调用,而其他只能由桌面应用程序调用。还有一些可以由任何一方调用。文档说明了需求部分支持的功能。如果您认为winrt与COM相关,则忽略了winrt的大部分功能。是的,在winrt的内心深处,使用了COM构造。但开发者永远不应该看到这一点。相反,他们使用的语言投射提供了一个自然和熟悉的API界面——这些API感觉就像使用该语言的开发人员所使用的API一样。@LarryOsterman OMG Larry Osterman回应了我的帖子