# Настройки Visual Studio и проектов

{% embed url="<https://learn.microsoft.com/en-us/cpp/build/vscpp-step-2-build?view=msvc-170>" %}
Основная документация
{% endembed %}

Установить пакет `Разработка классических приложений С++` (`Desktop Development with C++`).

<figure><img src="/files/BBwZIr6cI82VoU3NQqWo" alt="Visual Studio Installation 0"><figcaption></figcaption></figure>

Установить английскую локализацию и поставить её в среде разработки.

<figure><img src="/files/TWyJXO5hjD6XTClqREHE" alt="Visual Studio Installation 1"><figcaption></figcaption></figure>

Дополнительно рекомендуется установить `Clang`

<figure><img src="/files/XxkA93Iqz7PlxpgsuItU" alt="Visual Studio Installation Clang"><figcaption></figcaption></figure>

Также есть возможность поставить `Intel OneAPI`, в составе которого етсь компилятор и интеграция в visual Studio.

***

На начальном экране выберите `Create New project` / `Создать проект` (справа).

В поле поиска введите тип приложения, которое вы хотите создать, чтобы просмотреть список доступных шаблонов. Нас интересует `Windows Desktop Wizard` / `Мастер классических приложений`.

<figure><img src="/files/UqGYjiCFiwsUj7n31XBk" alt="Visual Studio Installation 2"><figcaption></figcaption></figure>

Ввести название проекта (project) и путь до него. Также в этом окне предлагается ввести название решения (solution), но т.к. наши работу будут небольшими (не крупные проекты), то рекомендуется объединять решение и проект в одну директорию нажатием галочки снизу.

<figure><img src="/files/DRCp4vdvopTYnJRatM33" alt="Visual Studio Installation Configurations"><figcaption></figcaption></figure>

По нажатию на `Create` / `Создать` появится диалоговое окно с настройкой проекта. В большинстве лабораторных нас устроит следующая настройка.

<figure><img src="/files/GTOetnEms0t7FJHebIjt" alt="Visual Studio Installation 3"><figcaption></figcaption></figure>

Откроется окно среды разработки с проектом.

<figure><img src="/files/s7lVak0GmDDwpNyEgEFH" alt="Visual Studio Installation 4"><figcaption></figcaption></figure>

> Нас интересуют файлы с исходным кодом и вкладки (окна) `Solution explorer`, `Output`, `Error list`. В `Solution explorer` показывается структура проектов в решении с точки зрения `Visual Studio` по умолчанию. `Output` показывает логи сборки, `error list` - `output` в виде таблицы.

***

Создадим файл с исходным кодом. Нажимаем правой кнопкой по проекту - `Add` - `New Item`.

<figure><img src="/files/eu1p8heCTSB8hMI9ZiiN" alt="Visual Studio Installation 5"><figcaption></figcaption></figure>

Затем выбираем тип файла с исходным кодом C/C++ (`.cpp`). Если нужно создать заголовочный, то выбираем тип заголовочного файла (`.h`). Важно: если вам хочется создать файл с расширением `.c` или `.hpp`, то выбирайте нужный тип и просто в окне имени файла исправьте тип на нужный.

<figure><img src="/files/kuuNdCjIFDBeIogodDUo" alt="Visual Studio Installation File Type"><figcaption></figcaption></figure>

> В зависимости от выбранного файла IDE отсортирует его в один из заготовленных фильтров, отображаемых в `Solution explorer`.

***

Дополнительно стоит отключить SDL check, чтобы "немодные" с точки зрения MSVC функции по типу `fopen` можно было использовать. Для этого нужно перейти в настройки проекта.

<figure><img src="/files/bBgcmoG0KJTiLYnC2ywQ" alt="Visual Studio SDL check disable 1"><figcaption></figcaption></figure>

Выбрать все конфигурации и платформы. Перейти в подраздел `All Options` раздела `C/C++`

<figure><img src="/files/F6HTyEVMvjJy4ilhxy00" alt="Visual Studio SDL check disable 2"><figcaption></figcaption></figure>

И выставить вариант `No (/sdl-)`.

<figure><img src="/files/m20Ja7Wra8AScIHNbCj8" alt="Visual Studio SDL check disable 3"><figcaption></figcaption></figure>

***

В созданный файл добавим код для вывода `Hello world`.

<figure><img src="/files/V1lJiLbPfgqvMcz7J4iV" alt="Visual Studio 6"><figcaption></figcaption></figure>

> \* после имени файла означает несохраненные изменения файла.

Сборка решения (кода) происходит по `F7` или через `menu bar`: `Build` - `Build solution` (или `build project project_name`). Если сборка произошла успешно, то будет выведено в `Output` следующее:

<figure><img src="/files/btJ8EJLF5dgUD2eRVAk6" alt="Visual Studio 7"><figcaption></figcaption></figure>

Допустим ошибку в исходном коде. Тогда поменяются логи сборки.

<figure><img src="/files/9uaa62k2czsaNXlJ0NCT" alt="Visual Studio Error in Log"><figcaption></figcaption></figure>

То же самое в `error list`.

<figure><img src="/files/kIQIsV2XMDXAGVeyFIFO" alt="Visual Studio Error in Error List"><figcaption></figcaption></figure>

***

В настройках проекта есть возможность выбирать `Platform Toolset` – набор программ, включая компилятор и сопутствующие ему библиотеки, которые будут использоваться для проекте. Другими словами, этой опцией переключается компилятор, которым будет собираться код в проекте.

<figure><img src="/files/20prasB6LPRM1fNHvIhl" alt="Visual Studio Setup Platform Toolset"><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://skkv-itmo.gitbook.io/c-cpp-cookies/environments/ide/visual-studio/coding-visual-studio.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
