由于依赖于一些增强COM组件,WinRT本质上是一基于COM的API。正因为其COM风格的基础,WinRT可以像COM那样轻松地实现多种语言代码之间的交互联系,不过本质上是非托管的本地API。API的定义存储在以”.winmd"为后缀的元数据文件中,格式编码派梁遵循ECMA 335的定义,和.Net使用的文件格式一样,不过稍有改进。[1]使用统一的元数据格式相比于P/Invoke,可以大幅减少WinRT调用.NET程序时的开销,同时拥有更简单的语法。全新的C++/CX(组件扩展)语言,借用了一些C++/CLI语法,允许授权和使用WinRT组件,但相比传统的C++下COM编程,对于程序员来说,有更少的粘合可见性,同时对于混合类型的限制相比C++/CLI也更少。在新的称为Windows Runtime C++ Template Library(WRL)的模板类库的帮助下(就好似ATL之于COM一样),规范的C++代码(遵循COM化规尘雹运范)也同样可以用在使用了WinRT组件的程序里[2]。不过MSDN建议使用C++/CX而不是WRL。[3]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)