我可以使用纯本机C 为Windows 8 Metro编写应用程序

Can I use pure native C++ to write apps for windows 8 metro?

本文关键字:Metro 应用程序 Windows 可以使 本机 我可以      更新时间:2023-10-16

使用本机C ,我的意思是,不是管理C ,不是CLI,不是Microsoft的任何特殊内容,我可以:

1)获得高性能2)使用现有的C 代码库和引擎3)编写跨平台代码(例如,对于iOS和Android)

它不必完全是本机C ,我可以使用托管代码来执行UI操作,例如Android中的iOS和Java中的Object-C,但是在接口之外,我可以使用本机C 代码吗?

我建议您在此处查看演示文稿:使用C 的Windows运行时,尤其是在Herb Sutter的评论中。我引用:

请回答此问题:如果我决定编写C GUI应用程序 以Metro风格,我被迫使用所有这些专有裁判,密封, ^,平台:: string^ GUI组件的扩展?

@Tomas:不,您不得被迫使用它们。我们提供两个 支持的方式:

1)这些语言扩展(C /CX)。

2)A C 模板库(WRL),请参阅 如Yannick所述,Windows套件 8.0 include winrt wrl。WRL是C 基于图书馆的解决方案沿ATL的行,提供 我认为您正在寻找的 - 模板包装/便利 课程和明确的智能指针等。

是的,您绝对可以,真正的本机C 得到了完全支持。

但是,您确实必须使用新的WinRT库来执行用户界面或系统调用,尽管它们是本机代码,并且直接从C 直接可呼叫,但它们的界面确实使他们确实很痛苦,因为一切都是如此一个参考计数的com对象,此外,创建它们的实例并不容易,就像称为" new",因此您必须编写丑陋代码的 lot 才能做到这一点。

正如较早的答案所述,微软提供了两种帮助解决方面的方法。一种是通过语言扩展到C ,另一个是C 模板库。我个人认为这两者都很难做一些简单的事情,就像打电话给API一样,但这只是我:)

但是,为了回答您的问题,完全有可能将您的应用程序编写在真实的本机C 中。您根本不需要使用托管代码。但是您可能需要使用语言扩展名或模板库使调用API更容易。

我个人希望有人为WinRT编写包装器,该包装将最必要的功能作为更可用的C 本地库,然后每个人都可以从C 中使用它...