C
Cobra911512 января 2018 г. 11:31

Qt с UWP API

c++, qt, uwp

Здравствуйте! Я хочу разработать программу UWP на Qt 5.9.3. У меня уже все Qt UWP киты установлены и настроены, но проблема в том что не получается вызвать любой класс UWP API. Вот пример:

.h

#include <winrt/windows.devices.enumeration.h>
#pragma comment(lib, "windowsapp")
using namespace winrt;
using namespace winrt::Windows::Devices::Enumeration;
.cpp
init_apartment(); //this initializes com
DeviceInformationCollection infos = DeviceInformation::FindAllAsync().get();
for (const auto &info : infos) {
     qDebug() << QString::fromWCharArray(info.Name().c_str());
}
Загрузил https://github.com/Microsoft/cppwinrt и добавил в .pro:
INCLUDEPATH += "C:/Users/cobra/Downloads/Downloads Data/cppwinrt/10.0.16299.0"

Получается что только на AMRV7 компилирует. На x32/x64 выбрасывает много ошибок: 

Ta4rP.jpg
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

6
C
  • 2 января 2018 г. 11:33

Как думаете в чем может быть проблема? Спасибо заранее.

    Evgenii Legotckoi
    • 2 января 2018 г. 16:17

    День добрый!

    У вас там случаем в вашем коде нет точки с запятой где-нибудь в неположенном месте?
    Например, так
    int main();
    {
    }
    Теоретически ошибок быть не должно, но кто знает... проанализируйте свой код как следует.
    Может при разных платформах как-то некорректно игнорируется какой-нибудь define, в результате чего появляется лишняя точка с запятой.
      C
      • 3 января 2018 г. 3:24

      Я проверил, без UWP API, программа компилируется на x32/x64. Дело было в другом, я установил разшерение Qt на Visual Studio, добавил там проект и при компиляции там пишет что минимум 10.0.14393.0  версия Win SDK должна быть (так как была 8.1), изменил, не помогло, установил версию Win SDK на 10.0.16299.0 так как файлы идут с  папки cppwinrt, а там только для 10.0.16299.0 . Все компилируется но проблема при запуске. Получается что программа крашится при старте, даже если это пустой проект. Через Debugger не могу проверить так как ResultMacros.h не найден. Спасибо за помощь.

        C
        • 3 января 2018 г. 4:09

        Странно, если скомпилировать пустой проект на Qt тогда он запускается. А на Visual Studio проблема с Windows.UI.Xaml.dll библиотекой. Через нее идет сбой.

          Evgenii Legotckoi
          • 3 января 2018 г. 15:49

          Возможно, что-то не подключено для Qt в рамках настроек Visual Studio. Не знаю, вообще не работаю с Visual Studio, я её только ради MSVC обычно ставлю.

            C
            • 4 января 2018 г. 5:06

            Понятно. Видимо придется мне UWP прогу делать на VS. Спасибо.

              Комментарии

              Только авторизованные пользователи могут публиковать комментарии.
              Пожалуйста, авторизуйтесь или зарегистрируйтесь
              e
              • ehot
              • 1 апреля 2024 г. 0:29

              C++ - Тест 003. Условия и циклы

              • Результат:78баллов,
              • Очки рейтинга2
              B

              C++ - Тест 002. Константы

              • Результат:16баллов,
              • Очки рейтинга-10
              B

              C++ - Тест 001. Первая программа и типы данных

              • Результат:46баллов,
              • Очки рейтинга-6
              Последние комментарии
              k
              kmssr9 февраля 2024 г. 5:43
              Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
              АК
              Анатолий Кононенко5 февраля 2024 г. 12:50
              Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
              EVA
              EVA25 декабря 2023 г. 21:30
              Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
              J
              JonnyJo25 декабря 2023 г. 19:38
              Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
              G
              Gvozdik19 декабря 2023 г. 8:01
              Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
              Сейчас обсуждают на форуме
              a
              a_vlasov14 апреля 2024 г. 16:41
              Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
              Павел Дорофеев
              Павел Дорофеев14 апреля 2024 г. 12:35
              QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
              Mm
              Mind mingles12 апреля 2024 г. 10:42
              ASO Service Forum: Enhancing App Visibility and Reach Welcome to the ASO Service Forum, your ultimate destination for insights, discussions, and strategies revolving around App Store Optimization. ASO (App Store Optimization) is paramoun…
              f
              fastrex4 апреля 2024 г. 14:47
              Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…
              P
              Pisych27 февраля 2023 г. 15:04
              Как получить в массив значения из связанной модели? Спасибо, разобрался:))

              Следите за нами в социальных сетях