Closed. This question needs to be more focused。它当前不接受答案。












想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。

5年前关闭。



Improve this question




我们有一个使用旧MFC GUI的C++桌面应用程序。现在我们想拥有一个更现代的触摸GUI。我们想使用Windows Metro App样式。
因为我们使用一些sdk链接共享的mfc库,所以我们认为我们无法使用这些组件编写WinRT应用程序(否则我们错了吗?)。

是否可以在桌面应用程序中使用WinRT GUI api(使用纯C++,而没有.net世界的任何内容,例如WRL/C++)?我们看到一些示例,即using accelerometer WinRT api,但没有GUI组件。

最佳答案

请记住,C++ / CX是纯天然的东西。没有.NET依赖关系等。它只是一种语言扩展,可以简化COM互操作(我确定您知道WinRT是基于COM的API),但是如果您不喜欢C++ / CX,请考虑将WRL用于低级互操作。

C++ / CX的语言扩展节省了时间,但您不必使用它们。如果使用Windows运行时C++模板库(WRL),则可以从标准C++获得对跨语言互操作的较低级别访问。 WRL使用COM程序员熟悉的约定。

WRL是创建和使用Windows运行时API的与编译器无关的方法。您可以使用WRL代替C++ / CX语法。它使您可以针对性能或特定方案优化代码。它还支持不使用异常的应用程序开发方法。

08-25 23:50