【发布时间】:2018-06-08 06:49:15
【问题描述】:
在Visual Studio 中我包括:using namespace Windows::Devices::Enumeration; 并且它有效。在Qt 中添加/包含命名空间时出现错误。任何文档如何使用UWP API 和Qt?
例如:
.h
#include <windows.devices.enumeration.h>
.cpp
DeviceAccessInformation deviceInfo;
我收到错误:C2065: 'DeviceAccessInformation': undeclared identifier
更新:
我找到了一些与该问题相关的信息。所以我将Win SDK 路径(INCLUDEPATH += "C:/Program Files (x86)/Windows Kits/10/Include/10.0.16299.0")添加到.pro 文件中。还在头文件中添加了#include "winrt/windows.devices.enumeration.h",但仍然找不到DeviceAccessInformation deviceInfo;,抛出错误:C2065: DeviceAccessInformation: undeclared identifier。
我还检查了示例,并添加了命名空间。
using namespace winrt;
并显示错误:C2871: 'winrt': a namespace with this name does not exist
我也注意到了警告:-1: warning: winrt_manifest_install.path is not defined: install target not created
我已包含 WindowsApp 库,但问题仍然存在。
contains(QMAKE_TARGET.arch, x86_64) {
LIBS += -L"C:/Program Files (x86)/Windows Kits/10/Lib/10.0.16299.0/um/x64" -lWindowsApp
} else {
LIBS += -L"C:/Program Files (x86)/Windows Kits/10/Lib/10.0.16299.0/um/x86" -lWindowsApp
}
我认为问题在于包含错误或我遗漏了某些内容。
更新 2:
谁能确认Qt 5.9.3 UWP x32/x64 套件可与UWP API 一起使用?提前致谢。
【问题讨论】:
-
#include
,你在哪里见过这种类型的导入? -
@eyllanesc 这只是一个测试。那么如何正确包含它呢?谢谢。
-
我不是windows专家,但是那个include不符合C++的导入标准。
-
@eyllanesc 是的,我同意,但它找到了头文件。添加
using namespace Windows::Devices::Enumeration;时会引发错误:C2039: 'Devices': is not a member of 'Windows'。UWP API引用仅包含命名空间。 -
您需要为 UWP 构建的 Qt。 doc.qt.io/qt-5/supported-platforms-and-configurations.html