Windows 8 WinRT - C++ or C++ .NET?
Windows 8 WinRT - C++ or C++ .NET?
我听说Windows 8开发将允许XAML/HTML5+C++应用程序,但它是本机非托管C++还是托管C++(以前的C++.NET)?
Windows Runtime(WinRT)本身就是一个本机非托管框架,但可以通过托管.NET语言轻松调用(与其他本机库和臭名昭著的P/Invoke
相比)。
但是,除了从托管语言中使用它之外,还可以从C++/CX中调用它。这是标准C++的Microsoft扩展,类似于.NET的C++/CLI。但与后者相比,它完全是本机非托管C++。但它支持一些C++/CLI的扩展,比如用于"类托管"指针的^
运算符。但在后台,这些实际上不是托管的垃圾收集指针,而是本地引用计数的指针,类似于std::shared_ptr
。我认为,它还支持类似.NET的属性和委托,以及分部类,以便使用WinRT的XAML框架。
此外,您甚至可以使用标准C++中的WinRT,使用所谓的Windows运行时C++模板库(WRL)。尽管据说它比C++/CX更麻烦,而且您可能无法使用所有功能,如简单的1XAML接口,但对此并不确定。
它是非托管C++,您可以将其构建到WinRT组件中。这些组件可以被你的HTML5或Win8.NET应用程序引用。
除了Slugart的好答案之外,您还可以为WinRT应用程序(和Java Script)编写非托管C++。微软很可能也会将这种编写非托管++的能力扩展到Windows Phone 8(目前还不可能),这将是一些开发团队(包括我自己的开发团队)的主要相关问题。
相关文章:
- 瓦尔格林德:数学函数"Conditional jump or move depends on uninitialised value(s)"
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- Android NDK clang 编译器错误在 Windows 上显示'No such file or directory'
- 模式"allocate memory or use existing data"
- N-API include an .so or dll
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- 将 OR 逻辑运算符从 C++ 转换为 Fortran
- CPP 中的瓦尔格林德和记忆泄漏:"Conditional jump or move depends on uninitialised values"
- 我如何将 OR 与 if 语句一起使用字符串
- 将 if 语句中的字符与 or 进行比较
- Google Or-Tools Glop:如何创建指向 const 对象的指针数组?
- 当初始值设定项是基类名时'initializer does not name a non-static data member or base class'错误
- "No such file or directory" C++标头问题
- 处理 std::enable_if<...中谓词的逻辑"OR">
- C++ 虽然语句不适用于字符串和"or"
- 我在 #include < bits/stdc++h.> 放置时出错"No such file or directory"
- Python Bitwise OR
- 逻辑'double free or corruption (fasttop)'错误
- 这在C++ "It does not own the underlying data, and so is cheap to copy or assign"中意味着什么