我听说 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),以及部分类,以便与 WinRT 的 XAML 框架一起工作。
除此之外,您甚至可以使用所谓的 Windows 运行时 C++ 模板库 (WRL) 从标准 C++ 使用 WinRT,尽管据说更麻烦与 C++/CX 相比,您可能无法使用所有功能,例如简单的 XAML 接口(interface),对此我不确定。
关于c++ - Windows 8 WinRT - C++ 或 C++ .NET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12384909/