如何在 Qt中调用 WinRt API

不准备写很多,仅仅简单地说一下。

可以在Qt的代码中调用 WinRT的 API 吗?

可以。 使用 WRL。 但是WRL 没有任何文档,并且非常复杂,建议使用此开源库,对WRL封装了一层,好用多了:https://moderncpp.com/  

对于异步调用的 API接口 可以参照 异步编程 页面 :https://moderncpp.com/asynchronous-programming/

对于不懂的问题,可以尝试在twitter上问一下作者,看一下视频,自己领悟一下,参照一下windows的 cpp sample,写法基本上差不多的。大大的简化了调用WRL的流程。

 为什么这么做?

因为Qt不提供一些对WinRT的系统调用,比如串口读写,不知道为什么。


下面链接一些资料:

Moderncpp 的官方网站:https://moderncpp.com/

Qt论坛上 某人对WRL的调用例子,以及为何推荐 moderncpp: https://forum.qt.io/topic/68670/how-can-i-use-winrt-c-apis-in-at-qt-winrt-app/2

Moderncpp 的仓库地址:https://github.com/kennykerr/modern

微软官方对WRL的解释(内容之少也是呵呵了):https://msdn.microsoft.com/en-us/library/hh438466.aspx



附加阅读:

微软官方对为什么设计出  c++/cx这么牛逼的东西 的解释:https://blogs.msdn.microsoft.com/vcblog/2011/10/20/inside-the-ccx-design/

微软官方对c++/cx的介绍:https://msdn.microsoft.com/en-us/library/windows/apps/hh699871.aspx

Qt WinRT的 书,写的比较宽泛,不过还是解释了我心头的很多疑惑,比如Qt是如何调用WinRtAPI的。:https://github.com/andrewknight/winrt

Qt官方博客 解释了 为什么Qt没有用c++/cx 而是 WRL:https://blog.qt.io/blog/2013/04/19/qts-winrt-port-and-its-ccx-usage/



-----------------------------------------------------------------2016.10.24------------------------------------------------------------------------------------------------------------------------

后来我问了moderncpp的作者,他给了我这个链接: 看起来是微软官方的库:https://github.com/Microsoft/cppwinrt

你可能感兴趣的:(学习心得)