使用Delphi进行本机Metro应用程序开发的资源

18

有没有网上资源可以帮助开始使用Delphi(Win32)开发本地Metro应用程序?

到目前为止,我找到了MSDN的介绍,入门Metro样式应用,其中链接到可用的API集,包括两个本地API:

  • Windows Runtime (WinRT) - “一个内置于操作系统中的本地 API。 对于 Metro 风格应用程序至关重要。以 C++ 实现,并以一种自然的方式支持 JavaScript、C#、Visual Basic 和 C++ 等不同编程语言。”
  • Win32 and COM for Metro style apps - “你可以在 Metro 风格应用程序中使用的 Win32 和 COM API 子集。”引用:

Metro 风格应用程序可以使用 Win32 和 COM API 的子集。选择这个 API 子集是为了支持 Metro 风格应用程序的关键场景,而这些场景不被 Windows Runtime、HTML/CSS 或其他支持的语言或标准所覆盖。Windows 应用认证工具确保你的应用只使用这个 Win32 和 COM API 的子集。


顺便提一下:根据Metro的Windows Store博客,第一个Metro应用程序比赛已于2012年1月8日关闭,获胜者已在二月底介绍 - 这些Metro应用程序已经通过Windows 8 Consumer Preview可用。


8
目前还没有支持WinRT的Delphi版本(无论是本机还是托管)。当然,你可以将WinRT视为基于COM的API来处理(它最终就是这样的),例如参考http://www.thomgerdes.com/2011/12/writing-hello-world-for-winrt-in-delphi.html。但在Embarcadero正确支持之前,请不要期望有任何严肃的支持或文档。 - Pavel Minaev
3
希望2012年末被认可的答案是“使用Delphi XE3,它现在具有本地的Metro支持”。 - Warren P
4
我也希望地铁应用程序提交到Windows商店不仅限于仅由Visual Studio创建的应用程序。 - DamienD
如果更多的用户拒绝使用只有供应商锁定编译器的平台,那将是很好的。不幸的是,很多人并不在意。背叛者! - OCTAGRAM
2个回答

14

2011年12月14日,Thom Gerdes撰写了这篇博客文章:

使用Delphi编写WinRT版Hello World

关于开发本地Metro应用程序的信息相对较少,尤其是针对除Microsoft提供预测的语言(C ++,C#和JavaScript)之外的其他语言。 其他语言(包括Delphi)需要在能够有效使用之前创建自己的投影。 我一直在研究如何让Delphi生成适用于WinRT的本地应用程序。

他的文章Hello World:挂接事件展示了如何在Delphi中使用Metro "多播委托"事件处理程序。

源代码可在https://github.com/tgerdes/DelphiWinRT上获取。


3
有一些关于此主题的新博客和论坛文章,指出了与 API 使用有关的问题,这使得应用程序无法通过 MS 应用商店的资格审核:为什么 Delphi XE3 没有原生的 WinRT 支持?——引用 Allen Bauer 的论坛帖子

我们非常热衷于使用原生的 Delphi 和 C++ 代码支持 WinRT。目前,围绕 WinRT 的问题是,许多操作系统提供的 API,即任何实现自己的语言 RTL 的人需要的 API,实际上是禁止使用的,除非你是 VC++ RTL DLL。就像异常处理中的 RtlUnwind 和内存管理中的 VirtualAlloc(等等)这样的小事情...... 从应用程序中调用这些 API 中的任何一个将自动使您的应用程序失去成为“官方”WinRT 应用程序并能够通过 MS 应用商店交付的资格。

另请参见:第三方编译器被锁定在 Windows Runtime 开发之外 另一方面,这个官方微软演示包含了一个声明:

Martyn(Lovell)明确表示,我们不仅希望语言设计师和实现者将 WinRT 添加到他们的语言和工具链的目标平台列表中,而且我们还会提供帮助和建议。


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