Сообщения об ошибках с использованием шаблона c ++ / WinRT Direct3D UWP Game DR, Direct X11

Я получаю эту ошибку компилятора, когда использую этот шаблон, и я не знаю, как ее решить. Стандартные параметры компилятора. Visual Studio 2019, установлены последние обновления.

Он все еще компилируется, но я хочу понять его, чтобы знать, нужно ли мне чего-то остерегаться.

Сообщение об ошибке :

D:\Windows Kits\10\Include\10.0.18362.0\cppwinrt\winrt\base.h(6508,17): warning C5205: Das Löschen einer abstrakten Klasse "winrt::impl::implements_delegate<winrt::Windows::Foundation::EventHandler<winrt::Windows::UI::Core::BackRequestedEventArgs>,H>" mit einem nicht virtuellen Destruktor führt zu einem nicht definierten Verhalten.
1>        with
1>        [
1>            H=ViewProvider::SetWindow::<lambda_a6c7fb36f57ac2067fa5c75eb2603001>
1>        ]

person Saerdna1968    schedule 18.05.2020    source источник
comment
Это было исправлено в PR 103, в частности в этот коммит.   -  person Raymond Chen    schedule 18.05.2020
comment
Я откатил ваши правки. Предлагаемый ответ касался вопроса, который был задан изначально. Если у вас возникла новая проблема, задайте новый вопрос. Если вам нужно публиковать сообщения об ошибках, убедитесь, что в вашей установке Visual Studio установлен языковой пакет для английского языка и настроен на его использование.   -  person IInspectable    schedule 23.05.2020


Ответы (1)


Это предупреждения, недавно добавленные в компилятор VS 2019 в рамках улучшения соответствия стандартам C ++.

Вы можете решить эту проблему одним из следующих способов:

  1. Отключить два предупреждения (5204, 5205)
  2. Вы можете отключить режим соответствия (выключить /permissive-) и отключить только одно предупреждение (5205)
  3. Обновите Windows 10 SDK (19041) до последней версии теперь доступен.
  4. Или вы устанавливаете пакет NuGet Microsoft.Windows.CppWinRT в своем проекте.

Вариант №4 лучше всего подходит, если вы хотите использовать новейшие функции C ++ / WinRT, в противном случае я бы рекомендовал вариант №3.

person Chuck Walbourn    schedule 18.05.2020