WinRT和内置的Windows 8应用程序

29
非 Metro 风格的 Windows 应用程序(例如资源管理器)能否使用新的 WinRT 构建,还是必须基于 Win32?

1
我认为这非常切题,因为我也曾经想过同样的问题。 - jondavidjohn
1
为什么要重写一百万行已经运行良好的代码? - Gabe
1
@jon 我不会评论这个问题是否属于离题。但是你也有同样的疑问并不意味着这个问题适合在SO上讨论。 - David Heffernan
2
当然,将我的评论中的“as”替换为逗号。我只是不确定这不是与代码相关、定量且非主观的。 - jondavidjohn
1
虽然我同意这个想法是相关的,但我认为它可能可以更好地提出问题。我会更倾向于像这样的问题:“WinRT对应用程序有哪些(如果有)限制?” - Jerry Coffin
显示剩余3条评论
2个回答

26

我曾在//Build/大会的“专家问答”环节中提出过这个问题。答案是“是的,但有所限制。并非所有WinRT API都能在桌面应用程序中调用-例如任何仅适用于Metro的API都将失败。目前没有可用的明确列表说明哪些API可以从桌面(非-Metro)应用程序中工作。”

编辑: 看起来文档已经更新,提供了一个可从桌面访问的WinRT API列表。


2
与UI相关的内容(Windows.UI.Xaml)肯定不会起作用。 - Pavel Minaev
4
WinRT和Win32使用相同的核心系统内部结构是显而易见的,但WinRT并不是基于Win32构建的。 - Jon
2
@DmitrySychov 我读了这篇文章和它引用的几篇文章。我从中得到的信息是“Win32并没有死亡”,这与“WinRT是Win32的包装器”有很大不同。我确实看到了一些关于整个WinRT都是围绕着explorer.exe的包装器的说法,这实在有点奇怪。 - Jon
8
一些 Windows Runtime APIs 是对现有 Win32 APIs 的轻量级封装(例如 XML 和传感器 APIs)。而一些 Windows Runtime APIs 是全新的(如 XAML APIs 和输入堆栈)。因此,说 Windows Runtime 是 Win32 的封装并不正确,但确实是 Windows Runtime 中的一些部分建立在 Win32 之上。 - Larry Osterman
2
@CodyC 请尝试访问此页面的末尾 - Jon
显示剩余6条评论

3

来自“Dev Center - Metro风格应用程序” 的内容

一位版主在2011年11月03日凌晨1:16发布了一个置顶帖子。

我们收到了许多有关这个领域的查询。随着Windows 8项目的进展,文档将会扩展以包括更多API的具体细节。可以从桌面应用程序中使用WinRT。WinRT API可能会与Metro风格应用程序、桌面应用程序或两者兼容。文档将列出每个API适用于哪些环境(桌面、Metro风格或两者均可)。注意:只有在Metro风格应用程序中才支持自定义WinRT组件。它们不受桌面应用程序的支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接