VS показывает много ошибок (E1696, E0020) и предупреждений (C26451, C4754) с новым проектом - PullRequest
0 голосов
/ 28 января 2020

Когда я запускаю новый проект (Blank App (C ++ / WinRT)) в Windows10 1909 @ VS2019 (в актуальном состоянии), он показывает много ошибок, как если бы расширение не было установлено. Но после попытки скомпилировать и запустить его работы - так почему я получаю ошибки и как я могу это решить? снимок экрана


Редактировать: Я нашел решение для этого. оказывается, что для проекта требовался дополнительный каталог include:

в свойствах проекта -> C / C ++ -> General -> [Additional Include Directory] Я добавил папку winRT: C: \ Program Файлы (x86) \ Windows Kits \ 10 \ Include \ 10.0.18362.0 \ cppwinrt screenshot2

, и это все, теперь нет ошибок (исправление - после создания нового проекта все еще есть те же ошибки)


edit2: обновление: я установил последний windows 10 SDK и все еще получал ошибки шва. Затем я установил пакет с помощью cmd с помощью следующей команды: D: \ vcpkg> vcpkg install cppwinrt: x86- windows

после того, как это было сделано, похоже, теперь он работает


edit3: я извиняюсь за досадные вопросы новичка ... похоже, у меня теперь есть другая проблема с моим проектом в файле packages.config, говорит, что пакет не объявлен со следующим предупреждением packages.config pi c

спасибо за любую помощь заранее.


(edit4) Я подписался на эту тему: элемент nuget 'packages' не объявлен предупреждение и все, теперь все, что мне нужно сделать, это научиться кодировать: D

1 Ответ

0 голосов
/ 29 января 2020

«Стандартными» путями для проектов Visual C ++ являются VC_IncludePath и WindowsSDK_IncludePath. Путь Windows SDK включает в себя уже все каталоги:

include\<10.0.build.0>\ucrt
include\<10.0.build.0>\shared
include\<10.0.build.0>\um
include\<10.0.build.0>\winrt
include\<10.0.build.0>\cppwinrt

«Пустое приложение (C ++ / WinRT)» не является частью стандартного набора шаблонов VS 2019. Название проекта на снимке экрана - «ConsoleApplication2», что подразумевает, что вы создали консольный проект C32 для Win32 вместо проекта C ++ / WinRT. Тем не менее, вы можете получить доступ к стандартным заголовкам C ++ / WinRT из консольного приложения Win32, поскольку они являются частью стандартного пути.

Судя по ошибкам на вашем первом снимке экрана, кажется, что вы используете сгенерированный C ++ / WinRT, а не тот, что в Windows 10 SDK. В VS 2019 вы должны добавить пакет NuGet Microsoft.Windows.CppWinRT в свой проект, чтобы получить правила MSBuild, необходимые для сборки с установленным VSIX C ++ / WinRT, так что это, вероятно, проблема здесь . См. VS Marketplace

...