Как отключить sdl в visual studio 2019
Я видел ответы, показывающие, как подавить предупреждение для определенной строки кода или для конкретного проекта. Я не хочу этого.
Я хочу подавить конкретное предупреждение для все моих проектов.
Вы можете создать исходный файл в каталоге решения с атрибутом [SuppressMessage] в нем. Затем включите его в каждый проект с помощью «Добавить существующий файл . Добавить как ссылку».
@RonBeyer Это не совсем то, что я ищу, но спасибо за обходной путь.
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно.
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей.
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то.
Ответы 6
Вы можете использовать атрибут SuppressMessage , присутствующий в пространстве имен System.Diagnostics.CodeAnalysis , например
Ну, как вы отредактировали, говоря Я хочу подавить конкретное предупреждение для всех моих проектов
Вы не можете сделать это для всего проекта, AFAIK. Но проверьте ссылку один раз, если это поможет
Спасибо. Но это работает только для одного проекта. Пожалуйста, поправьте меня, если я ошибаюсь. (Однако я не голосующий против.)
@ispiro да, как вы сказали, конкретная строка кода см. связанную документацию для получения дополнительной информации
@Rahul он сказал "конкретная строка кода", но у вас неверный контекст.
@mxmissile, не совсем так, как говорит OP как подавить предупреждение для определенной строки кода или для конкретного проекта
Спасибо. Но @mxmissile прав. Я просто имел в виду, что я уже видел их, и это не то, что я ищу. Я отредактировал вопрос, чтобы было немного понятнее.
См. Мой ответ о том, как отключить это в VS.
IDE0044 - это «добавить модификатор только для чтения», так почему бы просто не добавить модификатор?
Предупреждения говорят вам, что вы делаете что-то не так, но приложение скомпилируется.
В идеальном мире лучше всего не иметь предупреждений.
Потому что в некоторых ситуациях readonly - не лучший модификатор для использования (например, для массивов, потому что массивы могут быть изменены, даже если эта конкретная ссылка не может быть). Кроме того, бывают ситуации, когда совершенно законно и желательно переназначить поля, и IDE0044 все еще сообщается о них.
Я не согласен. Даже для массива установка только для чтения означает, что вы не собираетесь избавляться от всего массива. Если вы получили это предупреждение, значит, это совершенно безопасно. Что касается смены массивов. Хотя массив списка отлично подходит для класса, вы должны возвращать только коллекцию только для чтения, чтобы защитить свой массив.
В неидеальном, то есть реальном мире, очень легко застрять в проекте с почти 2k предупреждениями, в основном неиспользуемыми переменными и т. д. Я не исправляю все это, и их можно безопасно подавить.
Должна ли какая-либо конструкция корпуса переключателя иметь секцию по умолчанию? Уверены ли вы?
Вы можете попробовать использовать Directory.Build.props, добавив свойство NoWarn для определенных предупреждений. Но я не проверял это.
Существует также параметр editorconfig , который вы можете установить, если хотите проверить это предпочтение рядом с вашим кодом, чтобы другие, использующие ваш код, не получали предупреждения, но это должно быть сделано для каждого решения. Вы должны установить значение editorconfig :
Чтобы подавить предупреждения для всех проектов, вам необходимо создать файл .editorconfig в каталоге верхнего уровня. Например, у меня есть мой в trunk, и я передаю его в систему управления версиями, чтобы мои коллеги использовали одни и те же настройки.
Настройки в этом файле применяются ко всем проектам в магистрали и подпапках, если они не отменены другим файлом .editorconfig , расположенным ниже по дереву папок, например. у вас может быть файл EditorConfig для конкретного проекта в подпапке с другими настройками. Подробнее см. Иерархия и приоритет файлов.
Создание файла EditorConfig
Создать новый проект
В строке меню выберите Проект> Добавить новый элемент; или нажмите Ctrl + Shift + A
- При желании удалите проект - он нам особо не нужен
Visual Studio 2019 - Создание файла EditorConfig из текущих настроек
Если вы создаете в текстовом редакторе, вам, вероятно, понадобится это в верхней части файла, при необходимости скорректированное:
Отключение IDE0044 в конфигурационном файле редактора
Чтобы конкретно отключить IDE0044, добавьте или измените следующий параметр в файле .editorconfig :
Подробнее о моем ответе здесь
Я не опубликовал свой полный файл, поскольку сделал его с помощью VS, и он большой, но у меня действительно есть что-то похожее вверху ( [*.cs] ). Оказывается, это важно! Я добавил информацию к своему ответу для людей, которые создают файл конфигурации вручную. Спасибо за ответ.
Включает рекомендованные проверки жизненного цикла разработки безопасности (SDL). Эти проверки изменяют связанные с безопасностью предупреждения в ошибки и устанавливают дополнительные функции создания безопасного кода.
Синтаксис
Remarks
/SDL включает надмножество базовых проверок безопасности, /GS предоставляемых и переопределений /GS- . По умолчанию /sdl параметр имеет значение OFF. /sdl- отключает дополнительные проверки безопасности.
Проверки времени компиляции
/sdl позволяет применять эти предупреждения как ошибки:
Включаемые/sdl предупреждения | Эквивалентный параметр командной строки | Description |
---|---|---|
C4146 | /we4146 | Унарный оператор "минус" был применен к беззнаковому типу, что приведет к получению результата без знака. |
C4308 | /we4308 | Отрицательная целая константа преобразуется в беззнаковый тип, что, вероятно, приведет к получению бессмысленного результата. |
C4532 | /we4532 | continue Использование ключевых слов, break , или goto в __finally / finally блоке имеет неопределенное поведение во время аварийного завершения. |
C4533 | /we4533 | Код инициализации переменной не выполняется. |
C4700 | /we4700 | Используется неинициализированная локальная переменная. |
C4703 | /we4703 | Используется потенциально неинициализированная локальная переменная-указатель. |
C4789 | /we4789 | Переполнение буфера при использовании определенных функций среды выполнения C (CRT). |
C4995 | /we4995 | Использование функции, помеченной директивой pragma deprecated . |
C4996 | /we4996 | Использование функции, помеченной как deprecated . |
Проверки во время выполнения
Если /sdl включен, компилятор создает код, выполняющий эти проверки во время выполнения:
Ограничена очистка указателя. В выражениях, не затрагивающих разыменование и в типах, не имеющих пользовательских деструкторов, ссылки на указатели устанавливаются в недопустимый адрес после вызова delete . Такая очистка помогает предотвратить повторное использование устаревших ссылок на указатели.
Инициализирует указатели членов класса. Автоматически инициализирует члены класса типа указателя до nullptr создания экземпляра объекта (перед запуском конструктора). Это помогает предотвратить использование неинициализированных указателей, которые конструктор не инициализирует явным образом. Инициализация указателя члена, созданного компилятором, вызывается при условии, что:
Объект не выделяется с помощью пользовательского (определенного пользователем) operator new
Объект не выделяется как часть массива (например new A[x] ,)
Класс не управляется или не импортируется
Класс имеет определенный пользователем конструктор по умолчанию.
Для инициализации с помощью созданной компилятором функции инициализации класса элемент должен быть указателем, а не свойством или константой.
Установка данного параметра компилятора в среде разработки Visual Studio
Перейдите на страницу свойств Свойства конфигурации>C/C++>Общие.
В интегрированной среде разработки все сведения, необходимые для построения проекта, предоставляются в виде свойств. Эти сведения включают в себя имя приложения, расширение (например, DLL, EXE, LIB), параметры компилятора, параметры компоновщика, параметры отладчика, настраиваемые этапы сборки и многие другие компоненты. Как правило, для просмотра и изменения этих свойств используются страницы свойств. для доступа к страницам свойств выберите Project свойствапроекта в главном меню или щелкните правой кнопкой мыши узел проекта в обозреватель решений и выберите пункт свойства.
Свойства по умолчанию
При создании проекта система задает значения для различных свойств. Значения по умолчанию варьируются в зависимости от типа проекта и параметров, выбранных в мастере приложений. Например, проект ATL имеет свойства, связанные с MIDL-файлами, но эти свойства отсутствуют в базовом консольном приложении. В области "Общие" на страницах свойств отображаются свойства по умолчанию:
Применение свойств к конфигурациям сборок и целевым платформам
Некоторые свойства, такие как имя приложения, применяются ко всем вариантам сборки и целевым платформам, будь это сборка отладки или выпуска. Однако большинство свойств зависит от конфигурации. Чтобы создать правильный код, компилятор должен иметь как конкретную платформу, в которой будет выполняться программа, так и конкретные параметры компилятора. Поэтому при задании свойства важно обратить внимание на ту конфигурацию и платформу, к которым должно применяться новое значение. Должен ли он применяться только для отладки сборок Win32 или должен также применяться к отладке ARM64 и отладке x64? Например, для свойства оптимизации по умолчанию задано значение максимизировать скорость (/O2) в конфигурации выпуска, но оно отключено в конфигурации отладки.
Вы всегда можете видеть и изменять конфигурацию и платформу, к которым должно применяться значение свойства. На следующем рисунке показаны страницы свойств с элементами управления конфигурацией и сведениями о платформе в верхней части. Если свойство оптимизации задано здесь, оно будет применяться только для отладки сборок Win32, текущей активной конфигурации, как показано красными стрелками.
На следующем рисунке показана та же страница свойств проекта, но конфигурация изменена на выпуск. Обратите внимание на другое значение для свойства "Оптимизация". Кроме того, обратите внимание, что активной конфигурацией по-прежнему является отладка. Здесь вы можете задать свойства для любой конфигурации, а не только активной.
Целевые платформы
Целевая платформа относится к типу устройства и операционной системы, на которых будет выполняться исполняемый файл. Вы можете создать проект для нескольких платформ. Доступные целевые платформы для проектов C++ зависят от типа проекта. В их число входят только Win32, x64, ARM, ARM64, Android и iOS. Целевая платформа X86, которую вы могли заметить в Configuration Manager, идентична Win32 в собственных проектах C++. Win32 означает 32-разрядную версию Windows, а x64 — 64-разрядную. Дополнительные сведения об этих двух платформах см. в разделе Запуск 32-разрядных приложений.
Дополнительные сведения настройке свойств отладочной сборки см. в следующих разделах:
Параметры компилятора и компоновщика C++
Параметры компилятора и компоновщика C++ находятся в узлах C/C++ и Компоновщик на панели слева в разделе Свойства конфигурации. Эти параметры непосредственно преобразуются в параметры командной строки, которые будут переданы компилятору. Чтобы ознакомиться с документацией по конкретному параметру, выберите параметр в центральной области и нажмите клавишу F1. также можно просмотреть документацию по всем параметрам в MSVC параметры компилятора и параметры компоновщика MSVC.
Значения каталога и пути
MSBuild поддерживает использование констант времени компиляции для определенных строковых значений, таких как включаемые каталоги и пути, называемые макросами. макрос может ссылаться на значение, определенное Visual Studio или системой MSBuild, или на значение, определенное пользователем. Макросы выглядят как $(macro-name) или %(item-macro-name) . Они представлены на страницах свойств, на которых можно ссылаться и изменять их с помощью редактора свойств. Вместо жестко запрограммированных значений, таких как пути к каталогам, используйте макросы. Макросы упрощают совместное использование параметров свойств между компьютерами и версиями Visual Studio. Кроме того, можно обеспечить правильное участие в параметрах проекта в наследовании свойств.
На следующем рисунке показаны страницы свойств для проекта Visual Studio C++. в левой области выбрано правило VC++ каталоги , а на правой панели перечислены свойства, связанные с этим правилом. Значения свойств часто являются макросами, например $(VC_SourcePath) :
Для просмотра значений всех доступных макросов можно использовать Редактор свойств .
Предустановленные макросы
Глобальные макросы:
Глобальные макросы применяются ко всем элементам в конфигурации проекта. Глобальный макрос имеет синтаксис $(name) . Пример глобального макроса — свойство $(VCInstallDir) , которое сохраняет корневой каталог установки Visual Studio. Глобальный макрос соответствует элементу PropertyGroup в MSBuild.
Макросы элементов
Макросы элементов имеют синтаксис %(name) . Для файла макрос элемента применяется только к этому файлу, — например, можно использовать, %(AdditionalIncludeDirectories) чтобы указать каталоги включаемых файлов, которые применяются только к конкретному файлу. Этот тип макроса элемента соответствует метаданным ItemGroup в MSBuild. При использовании в контексте конфигурации проекта макрос элемента применяется ко всем файлам определенного типа. Например, свойство конфигурации определений препроцессора C/C++ может принимать макрос элемента, который применяется ко всем cpp-файлам в проекте. Этот тип макроса элемента соответствует метаданным ItemDefinitionGroup в MSBuild. Дополнительные сведения см. в разделе Определения элементов.
Пользовательские макросы
Вы можете создавать пользовательские макросы для использования в качестве переменных в сборках проекта. Например, можно создать пользовательский макрос, предоставляющий значение пользовательскому шагу сборки или пользовательскому средству сборки. Пользовательский макрос — это пара "имя-значение". Для доступа к этому значению в файле проекта используется нотация $(name) .
Пользовательский макрос хранится на странице свойств. если проект еще не содержит страницу свойств, его можно создать, выполнив действия, описанные в разделе общий доступ или повторное использование Visual Studio параметры проекта.
Создание пользовательского макроса
В левой области диалогового окна выберите Пользовательские макросы. В правой области нажмите кнопку Добавить макрос, чтобы открыть диалоговое окно Добавление пользовательского макроса.
В диалоговом окне задайте имя и значение для макроса. Кроме того, можно установить флажок Задание данного макроса в качестве переменной среды в среде сборки.
Редактор свойств
Редактор свойств можно использовать для изменения некоторых строковых свойств и выбора макросов в качестве значений. Чтобы открыть редактор свойств, выберите свойство на странице свойств, а затем нажмите кнопку со стрелкой вниз справа. Если раскрывающийся список содержит Правка >, можно выбрать его, чтобы отобразить редактор свойств для этого свойства.
В редакторе свойств можно нажать кнопку Макросы, чтобы просмотреть доступные макросы и их текущие значения. На следующем рисунке показан редактор свойств для свойства Дополнительные каталоги включаемых файлов после нажатия кнопки Макросы. Если установлен флажок наследовать от родительского объекта или проекта по умолчанию и добавить новое значение, то оно добавляется к любому значению, наследуемому в данный момент. Если снять флажок, новое значение заменяет наследуемые значения. В большинстве случаев следует не снимать этот флажок.
Добавление каталога включения к набору каталогов по умолчанию
При добавлении каталога включения в проект важно не переопределять все каталоги по умолчанию. Правильный способ добавления каталога — добавить новый путь, например " C:\MyNewIncludeDir\ ", а затем добавить $(IncludePath) макрос к значению свойства.
Быстрый просмотр и поиск всех свойств
Без префикса:
поиск только в именах свойств (подстрока без учета регистра).
" / " или " - ":
поиск только в параметрах компилятора (префикс без учета регистра)
v :
поиск только в значениях (подстрока без учета регистра).
Задание переменных среды для сборки
компилятор MSVC (cl.exe) распознает определенные переменные среды, в частности LIB ,, LIBPATH PATH и INCLUDE . при построении с помощью интегрированной среды разработки свойства, заданные на странице свойств каталоги VC++ , используются для задания этих переменных среды. если LIB LIBPATH значения, и INCLUDE уже заданы, например Командная строка разработчика, они заменяются значениями соответствующих свойств MSBuild. затем сборка добавляет значение свойства VC++ каталоги исполняемых каталогов в PATH . Для задания пользовательской переменной среды можно создать пользовательский макрос и затем установить флажок Задание данного макроса в качестве переменной среды в среде сборки.
Задание переменных среды для сеанса отладки
В правой области измените параметры проекта Среда или Объединение среды, а затем нажмите кнопку ОК.
Содержание раздела
Совместное или повторное использование параметров проекта Visual Studio
Создание .props файла с настраиваемыми параметрами сборки, которые можно использовать совместно или повторно.
Наследование свойств проекта
Описывает порядок вычисления для .props .targets .vcxproj переменных среды,, файлов и в процессе сборки.
Изменение свойств и целевых объектов без изменения файла проекта
Создание временных параметров сборки без изменения файла проекта.
На просторах интернета нашёл, что за это отвечает ReSharper, и что он находиться в средства->Параметры->ReSharper, но у мееня его почему то нет.
Как отключить предкомпилированные заголовки при создании проекта в Visual Studio 2019?
Подскажите пожалуйста, как отключить предкомпилированные заголовки при создании проекта в Visual.
Подключение библиотеки Visual Studio 2019
Здравстуйте. Я новичок, не могу разобраться. Скачал библиотеку BearLibTerminal. Имею файлы.
Подключение библиотек в Visual Studio
Хочу подключить библиотеки DirectX (да и не только) к среде Visual Studio 2017, но не через.
Подключение скачаных библиотек Visual Studio: что не так с библиотекой pch.h?
Мне нужно поработать с библиотекой SVGdrow, но у меня что-то не работает. Без установленной.
Каких ещё библиотек? Вы про пакеты NuGet вероятнее всего? Правой кнопкой мыши по проекту -> Manage NuGet Packages. во вкладке Installed выбираете ненужный пакет, и щёлкаете на Uninstall.
ReSharper же - это платный инструмент, который облегчает работу с кодом в Visual Studio. Соответственно, в поставку к Visual Studio по дефолту он не идёт.
Автоматическое подключение jar файлов в Visual Studio Code
Всем привет! Поставил себе восьмое чудо света от Microsoft Visual Studio Code :D Закачал.
как отключить автоматическое подключение инета на ХР?
Здравствуйте! Я устаавливал Windows 7 как вторую винду и она заразила Windows ХР sp2 (первую.
Как программировать textBox в Visual Studio 2019?
Захотел в целях практики сделать нормальный калькулятор в WindowsForms , понял как программировать.
Как изменить путь установки Visual Studio 2019?
Столкнулся с одной проблемой во время установки IDE Visual Studio. Вроде бы изменил путь на диск D.
Размер Visual Studio 2017 и Visual Studio 2019
Почему visual studio 2019 после скачивания занимает 24гб, а visual studio 2017 до 45гб? может я что.
Как отключить автоматическое форматирование кода в Visual Prolog 8?
Дорого времени суток. Мы начали проходить проходить пролог в ВУЗе. Я скачал Visual Prolog 8 с.
1)First thing you need to do is download SDL 2 headers and binaries. You will find them on the SDL website, specifically on this page.
You'll want to download the Visual C++ development libraries.
Open the zip archive and there should be a folder called SDL2-2.something.something. Copy the contents of the folder and put it anywhere you'd like. I recommend putting it in a folder that you dedicate to holding all your development libraries for Visual C++. For these tutorials I'm putting them in a directory I created called C:\vclib
2)Start up Visual Studio and create a new empty C++ project.
Give your project/solution whatever name you'd like and place it where ever you'd like.
3)Go download the source for lesson 01 and extract the source file. Right click on the source files folder in your solution, and then add the source file you downloaded.
For the rest of this tutorial, we will be assuming you are building for Debug x64 so make sure your configuation is set to Debug x64. Because libraries are different per configuation, you will need to add SDL to every configuation you plan on using. So if you want to build for Release x64 or Debug x86, you will need to add SDL2 to each configuation.
5)Build your solution and you should get the following error:
Cannot open include file: 'SDL.h': No such file or directory
This means Visual C++ cannot find the SDL header files and you need to add the SDL include folder to the Visual C++ include directories.
Go to project properties:
unresolved external symbol SDL_GetError referenced in function SDL_main
The header file tells the compiler what the SDL functions are, not where to find them. The library file tells the compiler where they are and we need to tell it to use the SDL library file. Go to Configuration Properties -> Linker -> Additional Dependencies -> Edit.
SDL2.lib; SDL2main.lib;
cannot open file 'SDL2.lib'
While we did tell Visual C++ to use the SDL library files, we didn't tell it where to find it. Add the library directory like you did the include directory
Make sure to add the library that matches your build configuation. If your building for x64, make sure to use the x64 library.
The code execution cannot proceed because SDL2.dll was not found.
This is because your application needs SDL2.dll to run but can't find it. Windows uses environment variables to define where to look for dll files. To edit the PATH environment variable, go into Windows Settings and search for edit the system environment variables:
Restart Visual Studio so Visual C++ can get the updated path variable, start your program and it should run.
Now that you have SDL 2 compiling, it's time to go onto part 2 of the tutorial.
Читайте также: