Можно ли нацеливаться на Windows 10.0.14393 с C ++ / WinRT? - PullRequest
0 голосов
/ 28 октября 2018

Я хотел бы сделать приложение для моей Lumia, застрявшей на Win 10.0.14393 (или 1609) с использованием C ++ / WinRT. Я создал пустое приложение проект с

  • Версия целевой платформы : 10.0.17134.0 и
  • Целевая платформа мин. версия : 10.0.14393.

Проект не компилируется со следующими ошибками:

ошибка C2039: «DisconnectUnloadedObject»: не является членом «winrt :: BlankApp2 :: реализовать :: MainPageT»

ошибка C2039: «UnloadObject»: не является членом «winrt :: BlankApp2 :: creation :: MainPageT»

Это ошибка или умышленное поведение? Обращаем ваше внимание, что настройка новее мин. версия приводит к успешной сборке.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Последняя версия C ++ / WinRT может поддерживать все версии Windows 10, включая 14393 и более старые версии.

Имейте в виду, что C ++ / WinRT - это и библиотека, и языковая проекция. Языковая проекция обеспечивает доступ к API-интерфейсам Windows, предназначенным для данной версии Windows. Каждая версия представляет новые API. Поэтому, если вы хотите использовать минимальную версию Windows, вам нужно убедиться, что вы ограничиваете себя API-интерфейсами, доступными в этой версии Windows. Однако я бы порекомендовал использовать новейший компилятор и последнюю версию Windows SDK, поскольку они содержат множество исправлений ошибок.

0 голосов
/ 06 ноября 2018

Я предлагаю вам использовать Visual Studio 2015 при нацеливании на старые обновления C ++ / WinRT и Windows 10.У меня сложилось впечатление, что большинство из них были поставлены поверх Visual Studio 2015 с обновлениями Visual Studio 2015 и обновлениями Windows 10 SDK и C ++ / WinRT.

При использовании Visual Studio 2015 с C ++ / WinRT вам потребуетсяпоследнее обновление, обновление 3. Проверьте наличие обновлений и убедитесь, что ваша копия Visual Studio 2015 содержит самые последние обновления.Я только что использовал установку Visual Studio 2015 Enterprise для перекомпиляции чего-то, что прекрасно компилируется с Visual Studio 2017, и обнаружил, что мне не хватает инструментов и SDK, в том числе для Win 10 SDK 10.0.14393, которые были в обновлении 3, которое я еще не установил.

Вы также можете перейти в раздел «Программы и компоненты» из панели управления, найти Microsoft Visual Studio 2015 в списке, а затем щелкнуть правой кнопкой мыши и изменить, что позволит вам проверить, что установлено, и что-либо изменить..

Работая с C ++ / WinRT в течение последних нескольких месяцев, я использовал и Visual Studio 2017 Community Edition, и Visual Studio 2015 Enterprise Edition.

При перемещении решения изVS 2015 до VS 2017, что потребовало от меня просмотра страницы свойств решения.См. Также обсуждение в синхронизации SDK с обновлением Windows 10 и использования WinRT со стандартным C ++

Работа с последними обновлениями Windows 10 и VS 2017 работает лучше всего для меня, поскольку я могу настроить таргетинг напоследние обновления для Windows 10.Однако я обнаружил, что попытка нацелить старые обновления Windows 10 с VS 2017 может быть проблематичной.

Извините, что не могу быть более конкретным.Во всей этой области обновлений C ++ / WinRT и Windows 10 гораздо больше ковбоя, чем мне бы хотелось, хотя сейчас это, похоже, успокаивается.

C ++ / WinRT - это библиотека шаблонов, которая изначально была проектом с открытым исходным кодом на GitHub,У меня сложилось впечатление, что Microsoft приобрела его, и теперь это стандартное предложение продукта.Я полагаю, что когда-то была значительно переписана C ++ / WinRT, так как Visual Studio 2015, а затем Visual Studio 2017 перешли к реализации большего количества C ++ 17 и предложенных стандартов C ++ 20 и Технических спецификаций для сопрограмм.

Кажется, это область, которая все еще меняется в некоторой степени.Однако большинство изменений происходили с VS 2015 и в начале VS 2017 вместе с SDK.Похоже, что сейчас с последними обновлениями все в порядке.

...