c++ - Windows 8 WinRT - C++ 或 C++ .NET?

标签 c++ windows-8 microsoft-metro windows-runtime winrt-xaml

我听说 Windows 8 开发将允许 XAML/HTML5 + C++ 应用程序,但它是 native 非托管 C++ 还是托管 C++(以前称为 C++ .NET)?

最佳答案

Windows Runtime (WinRT)本身是一个原生非托管框架,但可以通过托管 .NET 语言轻松调用(与其他原生库和声名狼藉的 P/Invoke 相比)。

但是除了从托管语言中使用它之外,它还可以从 C++/CX 中调用。这是标准 C++ 的 Microsoft 扩展,类似于 .NET 的 C++/CLI。但与后者相比,它完全是原生的非托管 C++。但它支持一些 C++/CLI 的扩展,例如用于“类托管”指针的 ^ 运算符。但在幕后,这些实际上并不是托管的垃圾收集指针,而是 native 引用计数指针,类似于 std::shared_ptr。我认为它还支持类似 .NET 的属性和委托(delegate),以及部分类,以便与 WinRTXAML 框架一起工作。

除此之外,您甚至可以使用所谓的 Windows 运行时 C++ 模板库 (WRL) 从标准 C++ 使用 WinRT,尽管据说更麻烦与 C++/CX 相比,您可能无法使用所有功能,例如简单的 XAML 接口(interface),对此我不确定。

关于c++ - Windows 8 WinRT - C++ 或 C++ .NET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12384909/

相关文章:

javascript - Metro 应用程序中的启动画面

microsoft-metro - 当异步回调返回时,我如何知道我仍在正确的页面上?

c++ - 如何在 C++ 中实现简单的基于 tick 的引擎?

c++ - 我的指针导致 "same type qualifier used more than once"警告?

windows-8 - 使用 Google Drive API javascript 上传或更新文件时标题为 'Untitled'?

javascript - 在 Metro 应用程序中获取窗口尺寸

c# - 如何向用户请求使用 Windows 应用商店应用中的位置的权限?

C++覆盖/重载问题

c++ - 有没有办法在不知道 c++ 中的大小的情况下迭代枚举

jquery-mobile - Windows 8 Phonegap 应用程序 JQuery 移动安全异常