Визуал библиотеки 2017


Install Visual Studio 2017 | Microsoft Docs

Welcome to a new way to install Visual Studio! In our newest version, we've made it easier for you to select and install just the features you need. We've also reduced the minimum footprint of Visual Studio so that it installs more quickly and with less system impact than ever before.

Want to know more about what else is new in this version? See our release notes.

Ready to install? We'll walk you through it, step-by-step.

Step 1 - Make sure your computer is ready for Visual Studio

Before you begin installing Visual Studio:

  1. Check the system requirements. This helps you know whether your computer supports Visual Studio 2017.
  2. Apply the latest Windows updates. This ensures that your computer has both the latest security updates and the required system components for Visual Studio.
  3. Reboot. This ensures that any pending installs or updates don't hinder the Visual Studio install.
  4. Free up space. Remove unneeded files and applications from your %SystemDrive% by, for example, running the Disk Cleanup app.

For questions about running previous versions of Visual Studio side-by-side with Visual Studio 2017, see the Visual Studio compatibility details.

Step 2 - Download Visual Studio

Next, download the Visual Studio bootstrapper file. To do so, click the following button, select the edition of Visual Studio 2017 that you want, click Save, and then click Open folder.

Watch a video on how to download the Visual Studio bootstrapper file and select the edition of Visual Studio that's right for you.

Step 3 - Install the Visual Studio installer

Then, run the bootstrapper file to install the Visual Studio Installer. This new lightweight installer includes everything you need to both install and customize Visual Studio 2017.

  1. From your Downloads folder, double-click the bootstrapper that matches or is similar to one of the following files:

    • vs_enterprise.exe for Visual Studio Enterprise
    • vs_professional.exe for Visual Studio Professional
    • vs_community.exe for Visual Studio Community

    If you receive a User Account Control notice, click Yes.

  2. We'll ask you to acknowledge the Microsoft License Terms and the Microsoft Privacy Statement. Click Continue.

Step 4 - Select workloads

After the installer is installed, you can use it to customize your installation by selecting the feature sets—or workloads—that you want. Here's how.

  1. Find the workload you want in the Installing Visual Studio screen.

    For example, choose the .NET desktop development workload. It comes with the default core editor, which includes basic code editing support for over 20 languages, the ability to open and edit code from any folder without requiring a project, and integrated source code control.

  2. After you select the workload(s) you want, click Install.

    Next, status screens appear that show the progress of your Visual Studio installation.

  3. After the new workloads and components are installed, click Launch.

Watch a video on how to install the Visual Studio Installer and then install a workload.

Step 5 - Select individual components (Optional)

If you don't want to use the Workloads feature to customize your Visual Studio installation, you can do so by installing individual components instead. To do this, click the Individual components option from the Visual Studio Installer, select what you want, and then follow the prompts.

Watch a video on how to install an individual component by using the Visual Studio Installer.

Step 6 - Install language packs (Optional)

By default, the installer program tries to match the language of the operating system when it runs for the first time. To install Visual Studio 2017 in a language of your choosing, click the Language packs option from the Visual Studio Installer, and follow the prompts.

Watch a video on how to install a language pack by using the Visual Studio Installer.

Change the installer language from the command line

Another way that you can change the default language is by running the installer from the command line. For example, you can force the installer to run in English by using the following command: vs_installer.exe --locale en-US. The installer will remember this setting when it is run the next time. The installer supports the following language tokens: zh-cn, zh-tw, cs-cz, en-us, es-es, fr-fr, de-de, it-it, ja-jp, ko-kr, pl-pl, pt-br, ru-ru, and tr-tr.

Step 7 - Launch Visual Studio

After Visual Studio installation is complete, click the Launch button to Get Started Developing with Visual Studio.

Get support

Sometimes, things can go wrong. If your Visual Studio installation fails, see the Troubleshooting Visual Studio 2017 installation and upgrade issues page for troubleshooting tips.

See also

docs.microsoft.com

Visual C++ в Visual Studio

Язык программирования в Visual Studio 2017 и средства разработки позволяют разрабатывать универсальные приложения Windows неуправляемого кода, классические и серверные приложения неуправляемого кода, межплатформенные библиотеки для Android, iOS и Windows, а также управляемые приложения, работающие на платформе .NET Framework.

Для кого предназначена эта документация?

Этот материал предназначен для разработчиков на C++, создающих программы.

  • Если вам нужен определенный распространяемый пакет C++ и компоненты среды выполнения для запуска программы, перейдите в Центр загрузки Майкрософт и введите в поле поиска Visual C++ .

  • Если вы хотите ознакомиться с принципами программирования на C++, перейдите на один из множества соответствующих ресурсов или приобретите книгу Programming — Principles and Practice Using C++ (Second Edition) (Программирование: принципы и практика использования C++, изд. 2), которую написал создатель языка C++ Бьёрн Страуструп (Bjarne Stroustrup). В материалах по Visual C++ предполагается, что у вас уже есть базовые знания о C++.

  • Если вам необходим компилятор Visual C++, необходимо скачать платную или бесплатную версию Visual Studio на сайте https://www.visualstudio.com/.

Общие сведения о Visual C++

Новые возможности Visual C++Новые возможности Visual C++.

Улучшения соответствия C++ в Visual Studio 2017 Узнайте об улучшениях соответствия C++ в Visual Studio 2017.

Соответствие стандартам языка Visual C++Список с данными о состоянии соответствия стандартам по каждой функции в Visual C++.

Журнал изменений Visual C++ 2003–2015Ознакомьтесь с критическими изменениями в предыдущих версиях.

Возвращение к C++Дополнительные сведения о современных методах программирования на C++ на основе C ++ 11 и C ++ 14 для написания быстродействующего и безопасного кода и исключения многих типичных ошибок программирования в стиле C.

Как сообщить о проблеме с набором инструментов Visual C++Сведения о создании эффективных отчетов об ошибках с использованием набора инструментов Visual C++ (компилятора, компоновщика и других средств) и информация о способах отправки отчета.

Руководство по переносу и обновлению Visual C++Руководство по переносу кода и обновлению проектов для Visual C++ в Visual Studio 2017, включая перенос кода C++ в Windows 10 и универсальную платформу Windows.

Блог команды разработчиков Visual C++Описание новых возможностей и актуальная информация от разработчиков --- --- Visual C++.

Загружаемые файлы Visual StudioЗагрузка Visual C++.

Инструменты и функции Visual C++ в выпусках Visual StudioСведения о разных редакциях Visual C++.

Поддерживаемые платформыПоддерживаемые платформы.

Примеры кода на Visual C++Информация о примерах.

Visual Studio CommunityОбращение за помощью, регистрация ошибок и предложения по Visual Studio.

Создание приложений на языке C++

Универсальные приложения WindowsРуководства и справочные материалы в Центре разработчика Windows. Дополнительные сведения о разработке приложений для Магазина Windows см. в разделе Разработка приложений для Магазина Windows с помощью Visual Studio и Схема создания приложений для Магазина Windows на С++.

Классические приложения (Visual C++)Создание классических приложений, включающих цикл обработки сообщений и обратные вызовы.

DLL в Visual C++Использование Win32, ATL и MFC для создания классических библиотек DLL для Windows, а также сведения о компиляции и регистрации библиотеки DLL.

Параллельное программированиеИспользование библиотеки параллельных шаблонов, C++ AMP, OpenMP и другим компонентов, связанных с многопоточностью в Windows.

Рекомендации по безопасностиЗащита приложений от вредоносного кода и несанкционированного использования.

Облачное и веб-программированиеВ C++ имеются несколько параметров для соединения с веб-узлом и облаком.

Доступ к даннымДля подключения к базам данных используйте ODBC и другие технологии доступа к базам данных.

Текст и строкиПодробнее о работе с другими форматами текста и строк и кодировках для локальных и международных разработок.

Дополнительные сведения о создании проектов, работе с файлами исходного кода, ссылках на библиотеки, компиляции, отладке, профилировании, развертывании и т. д. см. в статье Интегрированная среда разработки и средства разработки Visual C++.

Справочник по языку C++

Сведения о языке C++ см. в статье правочник по языку C++.

Сведения о препроцессоре C++ см. в статье Справочник по препроцессору C/C++.

Библиотеки C++ в Visual Studio

В следующих разделах приведены сведения о различных библиотеках C++, включенных в Visual C++.

Справочник по библиотеке времени выполнения CВключает альтернативы с улучшенной безопасностью для функций, которые, как известно, могут представлять угрозу безопасности.

Стандартная библиотека C++Стандартная библиотека C++.

Библиотека шаблонных классов (ATL)Поддержка компонентов и приложений COM.

Библиотеки Microsoft Foundation Class (MFC)Поддержка создания классических приложений с традиционными пользовательскими интерфейсами или интерфейсами в стиле Office.

Библиотека параллельных шаблонов (PPL)Асинхронные и параллельные алгоритмы, выполняемые в ЦП.

C++ AMP (C++ Accelerated Massive Parallelism)Массово-параллельные алгоритмы, выполняемые в GPU.

Библиотека шаблонов среды выполнения Windows (WRL)Приложения и компоненты --- --- Магазин Windows 8.x.

Программирование .NET с использованием C++/CLI (Visual C++)Программирование для общеязыковой среды выполнения (CLR).

См. также документацию по STL/CLR и библиотеке поддержки C++.

Другие библиотеки C++

Этот раздел содержит ссылки на библиотеки, которые не входят в состав Visual Studio, но доступны для загрузки и использования с Visual C++.

BoostПопулярная и широко распространенная библиотека.

C++ REST SDK.Библиотека Microsoft для взаимодействия с веб-службами по протоколу HTTP.

Дополнительные ресурсы

Ресурсы, посвященные Visual C++Дополнительные ресурсы информации по Visual C++.

Стандартный C++Дополнительные сведения о C++, обзор Modern C++ и ссылки на книги, статьи, обсуждения и данные о событиях

Знакомство с Visual C++Начало изучения C++.

См. также

Справочник по языку CСправочник по библиотеке времени выполнения CВнутренние объекты компилятора и язык ассемблера

docs.microsoft.com

Новые возможности Visual C++ в Visual Studio

В Visual Studio 2017 реализовано множество изменений и исправлений для среды Visual C++. Мы устранили более 250 ошибок и заявленных проблем в компиляторе и других инструментах. Информация о многих из этих ошибок поступила к нам от клиентов через Microsoft Connect. Спасибо, что сообщаете нам об ошибках! Подробнее о новых возможностях всех компонентов Visual Studio см. на странице Новые возможности Visual Studio 2017.

Компилятор C++

Улучшение соответствия C++

В данном выпуске мы обновили компилятор C++ и стандартную библиотеку, добавив расширенную поддержку функций C++11 и C++14, а также предварительную поддержку некоторых функций, которые должны появиться в стандарте C++17. Подробные сведения см. в статье C++ conformance improvements in Visual Studio 2017 (Улучшения соответствия C++ в Visual Studio 2017).

Новые параметры компилятора

-/std:c++14 и /std:c++latest: эти параметры компилятора позволяют выбирать соответствующие стандарту ISO определенные версии языка C++ в проекте. Дополнительные сведения см. в статье -std (Specify Language Standard Version) (-std (указание стандартной версии языка)). Большинство новых стандартных функций защищены с помощью параметра /std:c++latest.

Visual Studio 2017 версии 15.3: параметр /std:c++17 включает набор функций C++17, который реализован с помощью компилятора Visual C++. Этот параметр отключает компилятор и поддержку стандартной библиотеки для измененных и новых функций в более поздних версиях рабочего проекта и исключает обновления стандартного C++.

-/permissive-: включение всех соответствующих строгим стандартам параметров совместимости компилятора и отключение большей части поддерживаемых Майкрософт расширений компилятора (но не __declspec(dllimport), например). (По умолчанию параметр отключен, но в некоторый момент в будущем он будет включен по умолчанию.)

-/diagnostics: отображение номера строки, номера строки и столбца либо номера строки, столбца и курсора в строке кода, где была обнаружена ошибка диагностики или предупреждение.

-/debug:fastlink:ускорение компоновки на 30 % (по сравнению с Visual Studio 2015) без копирования всех сведений об отладке в PDB-файл. PDB-файл указывает на отладочную информацию для файлов объекта и библиотеки, используемых для создания исполняемого файла. См. статьи Ускорение цикла сборки C++ в VS "15"с помощью /Debug:fastlink и Рекомендации по повышению скорости сборок C++ в Visual Studio.

Visual Studio 2017 позволяет использовать /sdl с /await. Мы удалили ограничение /rtc для соподпрограмм.

Создание кода, безопасность, диагностика и управления версиями

В этом выпуске представлено несколько улучшений в области оптимизации и создания кода, управления версиями набора инструментов и диагностики. К важным улучшениям можно отнести следующие:

  • Улучшенное создание кода циклов: поддержка автоматической векторизации деления целочисленных констант, улучшенное распознавание последовательностей memset.
  • Повышенная защищенность кода: улучшенное создание диагностики компилятора при переполнении буфера; параметр /guard:cf теперь обеспечивает защиту операторов switch, которые создают таблицы переходов.
  • Управление версиями. Значение встроенного препроцессора _MSC_VER теперь монотонно обновляется при каждом обновлении набора инструментов Visual C++. Дополнительные сведения см. в статье Visual C++ Compiler Version (Версия компилятора Visual C++).
  • Новый макет набора инструментов. Компилятор и связанные средства сборки имеют новую структуру расположения и каталогов на компьютере разработки. Новый макет позволяет параллельно устанавливать несколько версий компилятора. Дополнительные сведения см. в статье Макет инструментов компилятора в Visual Studio "15".
  • Улучшенная диагностика. В окне вывода теперь отображается столбец, в котором произошла ошибка. Дополнительные сведения см. в статье Усовершенствования функций диагностики компилятора C++ в VS "15" Preview 5.
  • При использовании совместных подпрограмм экспериментальное ключевое слово yield (в параметре /await) удалено. Нужно обновить код для использования co_yield вместо него. Дополнительные сведения см. в блоге команды разработчиков Visual C++.

Visual Studio 2017 версии 15.3: дополнительные улучшения диагностики в компиляторе. Дополнительные сведения см. в статье Diagnostic Improvements in Visual Studio 2017 15.3.0 (Улучшения диагностики в Visual Studio 2017 версии 15.3.0).

Библиотеки C++

Улучшения стандартной библиотеки

  • Незначительные улучшения диагностики basic_string _ITERATOR_DEBUG_LEVEL != 0. При активации проверки IDL в механизме обработки строк теперь указывается конкретное поведение, которое стало причиной этого. Например, вместо "string iterator not dereferencable" (итератор строки не является разыменуемым) вы получите сообщение "cannot dereference string iterator because it is out of range (e.g. an end iterator)" (не удается разыменовать итератор строки, так как он выходит за пределы диапазона, например конечный итератор).
  • Улучшение производительности: перегрузки basic_string::find(char) вызывают traits::find всего один раз. Ранее это было реализовано в качестве общего механизма поиска строки для строки длиной 1.
  • Улучшение производительности: basic_string::operator== теперь проверяет размер строки перед сравнением содержимого строк.
  • Улучшение производительности: удалена взаимозависимость элементов управления в basic_string, которая вызывала трудности при анализе оптимизатором компилятора. Устраняет ошибку VSO# 262848 "<string>: reserve() выполняет слишком много задач". Обратите внимание, что для всех коротких строк вызов reserve по-прежнему имеет ненулевое значение затрат при отсутствии выполняемых операций.
  • Мы добавили <any>, <string_view>, apply(), make_from_tuple().
  • std::vector был переработан для обеспечения правильной работы и производительности: присвоение псевдонима во время вставки или назначения места теперь обрабатывается правильно, в соответствии с требованиями стандарта; посредством move_if_noexcept() и другой логики предоставляется надежная гарантия исключения в тех случаях, когда того требует стандарт, а при вставке или назначении места выполняется меньше операций с элементами.
  • Стандартная библиотека C++ теперь избегает разыменования пустых (NULL) указателей.
  • Добавлены <optional>, <variant>, shared_ptr::weak_type и <cstdalign>.
  • Включен C++14 constexpr в min/max/minmax(initializer_list) и min_element/max_element/minmax_element().
  • Улучшена производительность weak_ptr::lock().
  • Исправлен оператор присваивания перемещением std::promise, из-за которого раньше в коде могла возникнуть вечная блокировка.
  • Устранены ошибки в компиляторе, связанные с неявным преобразованием atomic<T *> в T *.
  • pointer_traits<Ptr> теперь правильно обнаруживает Ptr::rebind<U>.
  • Исправлено отсутствие квалификатора const в операторе вычитания move_iterator.
  • Устранено автоматическое неверное создание кода для определяемых пользователем распределителей с отслеживанием состояния, требующих propagate_on_container_copy_assignment и propagate_on_container_move_assignment.
  • atomic<T> теперь допускает перегруженный оператор operator&().
  • Для повышения скорости работы компилятора заголовки стандартной библиотеки C++ теперь не включают объявления для ненужных встроенных функций компилятора.
  • Немного улучшилась диагностика компилятора для неверных вызовов bind().
  • Производительность конструкторов перемещения std::string/std::wstring повышена более чем в 3 раза.
  • Полный список стандартных библиотек в см. в статье Standard Library Fixes In VS 2017 RTM (Исправления стандартной библиотеки в Visual Studio 2017 RTM).
Visual Studio 2017 версия 15.3
Функции C++17

Реализовано несколько дополнительных функций C++17. Дополнительные сведения см. в статье Соответствие стандартам языка Visual C++.

Другие новые функции
  • Реализовано исправление P0602R0: variant и optional должны распространять тривиальность копирования и перемещения.
  • Стандартная библиотека теперь официально допускает отключение динамической RTTI через /GR-. dynamic_pointer_cast() и rethrow_if_nested() требуют dynamic_cast, поэтому стандартная библиотека теперь помечает их как =delete under /GR-.
  • Даже если динамическая RTTI отключена через /GR-, статистическая RTTI (в форме typeid(SomeType)) все еще доступна и позволяет использовать несколько компонентов стандартной библиотеки. Стандартная библиотека теперь также поддерживает отключение через /D_HAS_STATIC_RTTI=0. Обратите внимание, что это отключит std::any, std::function's target() и target_type(), и shared_ptr's get_deleter().
Правильность исправления
  • Контейнеры стандартной библиотеки теперь собирают max_size() в numeric_limits<difference_type>::max(), а не size_type's max. Это гарантирует, что результат distance () на итераторах из этого контейнера будет отображаться в типе возвращаемого значения distance().
  • Исправление отсутствующей специализации auto_ptr<void>.
  • Алгоритмы meow_n () ранее не удавалось скомпилировать, так как аргумент length не был целочисленного типа. Теперь они пытаются преобразовать нецелочисленные типы lengths в итераторы difference_type.
  • normal_distribution<float> больше не выдает предупреждения в стандартной библиотеке об ограничении из типа double во float.
  • Исправлены некоторые операции basic_string, которые сравнивали с npos вместо max_size() при проверке максимального размера переполнения.
  • condition_variable::wait_for(lock, relative_time, predicate) будет ожидать все относительное время в случае поддельного пробуждения. Теперь он будет ждать только один интервал относительного времени.
  • future::get() теперь не допускает будущий вариант, как того требует стандарт.
  • terator_traits<void *> являлся критической ошибкой, так как он пытался сформировать void&;. Теперь он становится пустой структурой, позволяющей использовать iterator_traits в условиях SFINAE is iterator.
  • Некоторые предупреждения, выдававшиеся в заголовках Clang -Wsystem, были исправлены.
  • Кроме того, исправлена ошибка "Спецификация исключений в объявлении не соответствует предыдущему объявлению", о которой сообщал Clang -Wmicrosoft-exception-spec.
  • Кроме того, исправлены предупреждения упорядочивания mem-initializer-list, о которых сообщают Clang и C1XX.
  • Неупорядоченные контейнеры не переключают свое хэширование или предикаты при переключении контейнеров. Теперь они это делают.
  • Многие операции переключения контейнеров теперь помечены как noexcept (так как наша стандартная библиотека никогда не будет выдавать исключение при обнаружении неопределенного условия поведения non-propagate_on_container_swap non-equal-allocator).
  • Многие операции vector<bool> теперь помечены как noexcept.
  • Стандартная библиотека теперь будет обеспечивать сопоставление распределителя value_types (в режиме C++17) с помощью отказа.
  • Исправлены некоторые условия, при которых self-range-insert в basic_strings будет шифровать содержимое строки. (Обратите внимание, что использование self-range-insert в векторах все еще запрещено стандартной библиотекой.)
  • basic_string::shrink_to_fit() больше не затрагивается propagate_on_container_swap распределителя.
  • std::decay теперь обрабатывает недопустимые типы функций (например, типы функций с квалификацией типа cv или ref).
  • Изменены директивы включения для использования правильного учета регистра и косых черт, улучшая мобильность.
  • Исправлено предупреждение C4061 "перечислитель Meow в параметре перечисления Kitten неявно обработан меткой регистра". Это предупреждение отключено по умолчанию и было исправлено в качестве исключения в общей политике предупреждений в стандартной библиотеке. (В стандартной библиотеке не используется /W4, но используется /Wall. Множество отключенных по умолчанию предупреждений срабатывают слишком часто и не предназначены для постоянного использования.)
  • Улучшенная проверка отладки std::list. Итераторы списка теперь проверяет operator->(), а list::unique() помечает итераторы как недействительные.
  • Исправлено метапрограммирование uses-allocator в кортеже.
Исправления производительности и пропускной способности
  • Устранена проблема взаимодействия с noexcept, которая не позволяла встраивать реализацию std::atomic в функции, которые используют структурированную обработку исключений (SEH).
  • Изменена внутренняя функция стандартной библиотеки _Deallocate() для оптимизации в коде меньшего размера, позволяя встроить ее в большее количество мест.
  • Изменен std::try_lock() для использования расширения пакета вместо рекурсии.
  • Улучшен алгоритм предотвращения взаимоблокировки std::lock() при использовании операций lock() вместо обращения ко всем методам try_lock() блокировки.
  • Включена оптимизация именованных возвращаемых значений в system_category::message().
  • conjunction и disjunction теперь создает экземпляры типов N + 1 вместо 2N + 2.
  • std::function больше не создает экземпляры механизмов поддержки распределителя для каждого вызываемого элемента с удалением типа, улучшая пропускную способность и уменьшая размер .obj в программах, которые передают много различных лямбда-выражений в std::function.
  • allocator_traits<std::allocator> содержит встроенные операции std::allocator, уменьшает размер кода, взаимодействующего с std::allocator только через allocator_traits (т. е. большую часть кода).
  • Интерфейс минимального распределителя C++11 теперь обрабатывается таким образом: стандартная библиотека напрямую вызывает allocator_traits, а не помещает распределитель во внутренний класс _Wrap_alloc. Так уменьшается размер кода, создаваемого для поддержки распределителя, в некоторых случаях улучшается способность оптимизатора делать выводы о контейнерах стандартной библиотеки и оптимизируется отладка (так как теперь в отладчике отображается тип распределителя, а не _Wrap_alloc<ваш тип распределителя>).
  • Удалено метапрограммирование для настроенного allocator::reference, чьи распределители фактически запрещено настраивать. (Распределители могут настроить в контейнерах использование специальных указателей, но не специальных ссылок.)
  • Интерфейс компилятора настроен для распаковывания итераторов отладки в цикле for на основе диапазона, улучшая производительность отладочных сборок.
  • Путь внутреннего сжатия basic_string для shrink_to_fit() и reserve() больше не перераспределяет операции, уменьшая объем кода для всех участников изменения.
  • Внутренний путь создания basic_string больше не находится в пути shrink_to_fit().
  • Операции изменения basic_string теперь факторизованы в быстром пути без распределения и в функциях медленного пути с распределением, повышая вероятность встраивания стандартного сценария без распределения в вызывающие объекты.
  • Операции изменения basic_string теперь создают перераспределенные буферы в предпочтительном состоянии, а не изменяют их размер на месте. Например, при включении в начале строки теперь содержимое после вставки перемещается только один раз (на уровень вниз или в выделенный буфер) вместо двух в случае перераспределения (в выделенный буфер, а затем на уровень вниз).
  • Операции, вызывающие стандартную библиотеку C в <string> теперь кэшируют адрес errno для удаления повторяющегося взаимодействия с протоколом TLS.
  • Упрощена реализация is_pointer.
  • Завершено изменение основанного на функции выражения SFINAE на struct или void_t-based.
  • Алгоритмы стандартной библиотеки теперь избегают итераторов последующего увеличения.
  • Устранены предупреждения об усечении при использовании 32-разрядных распределителей в 64-разрядных системах.
  • std::vector перемещает назначение эффективнее в случае использования неравного распределителя без применения non-POCMA, повторно используя буфер по необходимости.
Читабельность и другие усовершенствования
  • Стандартная библиотека теперь использует C++14 без дополнительный условий вместо макросов, определяемых условиями.
  • Стандартная библиотека теперь использует шаблоны псевдонимов внутренним образом.
  • Стандартная библиотека теперь использует nullptr внутренне вместо nullptr_t{}. (NULL больше не используется внутренне. Внутреннее использование 0 в качестве null постепенно отменяется.)
  • Стандартная библиотека теперь использует std::move() внутренне вместо стилистически неправильного использования std::forward().
  • Изменено static_assert(false, "message") на #error message. Таким образом вы получаете более точную диагностику компилятора, так как #error немедленно прекращает компиляцию.
  • Стандартная библиотека больше не помечает функции как __declspec(dllimport). Для современных компоновщиков это больше не требуется.
  • Извлечены SFINAE для аргументов шаблона по умолчанию, которые сокращают нагрузку по сравнению с типами возвращаемых данных и типами аргумента функции.
  • При проверке отладки <random> теперь используются обычные механизмы стандартной библиотеки вместо внутренней функции _Rng_abort(), которая называется fputs() в stderr. Реализация этой функции сохраняется для двоичной совместимости, но была удалена в следующей версии стандартной библиотеки, несовместимой с двоичным форматом

Поддержка библиотеки с открытым исходным кодом

Vcpkg является средством командной строки с открытым исходным кодом, которое значительно упрощает процесс получения и создания статических библиотек открытым исходным кодом C++ и библиотек DLL в Visual Studio. Подробнее см. в разделе vcpkg: диспетчер пакетов для C++.

Пакет SDK для CPPRest 2.9.0

CPPRestSDK, кроссплатформенный веб-API для C++, был обновлен до версии 2.9.0. Дополнительные сведения см. в статье Доступность CppRestSDK 2.9.0 в GitHub.

ATL

  • Еще один набор исправлений соответствия поиска по имени.
  • Имеющиеся конструкторы перемещения и операторы присваивания перемещения теперь правильно помечены как не предусматривающие формирование исключений.
  • Отменено отключение допустимого предупреждения C4640 о потокобезопасной инициализации локальных статических элементов в atlstr.h.
  • Потокобезопасная инициализация локальных статических элементов была автоматически отключена в наборе инструментов XP при [использовании ATL и сборке библиотеки DLL]. Этот режим больше не используется. Если нужно отключить потокобезопасную инициализацию, в настройки проекта можно добавить /Zc:threadsafeinit.

Среда выполнения Visual C++

  • Новый заголовок "cfguard.h" для символов защиты потока управления.

IDE C++

  • Повышена производительность изменения конфигурации для проектов в машинном коде на C++ и проектов C++/CLI. При первой активации конфигурации решения процесс теперь будет работать быстрее, а все последующие активации будут происходить практически мгновенно.

Visual Studio 2017 версия 15.3:

  • Некоторые мастера проекта и кода были переписаны в стиле диалоговых окон с подписями.
  • При выборе пункта меню Добавить класс теперь запускается мастер добавления классов. Все остальные элементы, которые ранее здесь находились, теперь доступны в разделе Добавить > Новый элемент.
  • Проекты Win32 теперь находятся в каталоге "Настольные приложения Windows" в диалоговом окне Создание проекта.
  • При выборе шаблонов "Консольное приложение Windows" и "Настольное приложение Windows" теперь создаются проекты без вызова мастера. Теперь доступен новый мастер создания настольного приложения Windows. Он отображается в той же категории, что и раньше, и с теми же параметрами.

IntelliSense

  • По умолчанию теперь используется новое ядро СУБД на основе SQLite. Это позволяет ускорить операции базы данных, такие как переход к определению и поиск всех ссылок, а также значительно ускорить первоначальный анализ решения. Параметр был перемещен в меню "Инструменты > Параметры > Текстовый редактор > C/C++ > Дополнительно" (ранее он был в разделе "...C/C++ > Экспериментальные").

  • Улучшена производительность IntelliSense в проектах и файлах, где не используются предкомпилированные заголовки. В текущем файле для заголовков будет создан автоматический предкомпилированный заголовок.

  • Добавлена фильтрация ошибок и справка по ошибкам IntelliSense для списка ошибок. Теперь выполнить фильтрацию можно, просто щелкнув столбец ошибок. Кроме того, если щелкнуть конкретные ошибки или нажать клавишу F1, запустится поиск сообщения об ошибке в сети.

  • Добавлена фильтрация пунктов списка элементов по виду.

  • Добавлена новая экспериментальная возможность, прогнозный IntelliSense, обеспечивающая фильтрацию содержимого списка элементов с учетом контекста. См. статью Усовершенствования C++ IntelliSense — прогнозная технология IntelliSense и фильтрация.

  • Команда "Найти все ссылки" (SHIFT+F12) теперь позволяет легко перемещаться даже по сложным базам кода. Она предоставляет расширенные возможности группирования, фильтрации, сортировки, поиска в найденном и цветового выделения результатов. Это дает вам четкое понимание ссылок. Для C++ новый компонент пользовательского интерфейса содержит информацию о том, выполняется ли чтение из переменной или запись в переменную.

  • Функция замены точки на стрелку IntelliSense была перенесена из экспериментальных в расширенные и теперь включена по умолчанию. Функции расширения областей и приоритета расширения в редакторе также были перенесены из экспериментальных в расширенные.

  • Экспериментальные функции рефакторинга "Изменить сигнатуру" и "Извлечь функцию" теперь доступны по умолчанию.

  • Экспериментальная функция для C++ проектов "Меньшее время загрузки проекта". Когда вы в следующий раз откроете проект C++, он загрузится быстрее, а в последующий раз — очень быстро.

Некоторые из этих функций являются общими для других языков, а некоторые специфичны для C++. Дополнительные сведения об этих новых возможностях см. в объявлении о выпуске Visual Studio "15".

Поддержка проектов, отличных от MSBuild, с помощью функции "Открыть папку"

В Visual Studio 2017 появилась функция "Открыть папку", позволяющая создавать код, выполнять сборку и отладку в папке с исходным кодом без необходимости создавать решения или проекты. Это намного упрощает начало работы с Visual Studio, даже если проект не основан на MSBuild. С помощью функции "Открыть папку" вы получаете доступ к эффективным возможностям в области понимания, изменения, создания и отладки кода, уже предоставляемых Visual Studio для проектов MSBuild. Дополнительные сведения см. в статье Open Folder projects in Visual C++ (Открытие папки проектов в Visual C++).

  • Улучшения в процедуре открытия папки. Можно выполнить настройку с помощью следующих файлов JSON:
    • CppProperties.json используется для настройки работы с IntelliSense и браузером.
    • Tasks.json используется для настройки этапов сборки.
    • Launch.json используется для настройки процедуры отладки.

Visual Studio 2017 версия 15.3:

  • Улучшенная поддержка альтернативных компиляторов и сред сборки, таких как MinGW и Cygwin. Дополнительные сведения см. в статье Using MinGW and Cygwin with Visual C++ and Open Folder (Использование MinGW и Cygwin с Visual C++ и функцией "Открыть папку").
  • Добавлена поддержка определения глобальных и зависящих от конфигурации переменных среды в файлах CppProperties.json и CMakeSettings.json. Эти переменные среды могут использоваться в конфигурациях отладки, определенных в файле launch.vs.json, и в задачах, определенных в файле tasks.vs.json.
  • Улучшена поддержка генератора CMake Ninja, включая упрощение выбора 64-разрядной платформы в качестве целевой.

Поддержка CMake с помощью функции "Открыть папку"

В Visual Studio 2017 добавлена поддержка использования проектов CMake без преобразования в файлы проекта MSBuild (с расширением VCXPROJ). Дополнительные сведения см. в статье CMake projects in Visual C++ (Проекты CMake в Visual C++). При открытии проектов CMake с помощью функции "Открыть папку" автоматически настраивается среда для редактирования, сборки и отладки C++.

  • Для работы C++ IntelliSense не требуется создавать файл CppProperties.json в корневой папке. Кроме того, мы добавили новый раскрывающийся список, позволяющий пользователям легко переключаться между конфигурациями, предоставляемыми файлами CMake и CppProperties.json.

  • Дальнейшая настройка поддерживается посредством файла CMakeSettings.json, который находится в одной папке с файлом CMakeLists.txt.

Visual Studio 2017 версии 15.3: добавлена поддержка генератора CMake Ninja. Дополнительные сведения см. в статье CMake support in Visual Studio – what’s new in 2017 15.3 Preview 2 (Поддержка CMake в Visual Studio: новые возможности в версии 2017 15.3 (предварительная версия 2)).

Рабочие нагрузки установки C++

Разработка классических приложений для Windows на C++:

Теперь предоставляется более точный контроль над процедурой установки исходной рабочей нагрузки C++. Мы добавили возможность выбора компонентов, чтобы вы могли устанавливать только необходимые инструменты. Обратите внимание, что в пользовательском интерфейсе установщика указаны неточные размеры установки для компонентов. Таким образом, общий размер занижен.

Чтобы успешно создавать проекты Win32 в рабочей нагрузке для разработки приложений на C++, необходимо установить набор средств и пакет SDK для Windows. Для этого следует установить рекомендуемые (выбранные) компоненты "Набор средств VC++ 2017 v141 (x86, x64)" и "Пакет SDK Windows 10 (10.0.14393)". Если необходимые средства не установлены, создание проектов завершится ошибкой, а мастер может зависнуть.

Разработка приложений для Linux на C++:

Популярное расширение, Visual C++ для разработки приложений Linux, теперь стало частью Visual Studio. В этой установке представлено все необходимое для разработки и отладки приложений C++, работающих в среде Linux.

Visual Studio 2017 версии 15.2: улучшение использования кроссплатформенного кода и типа визуализации. Дополнительные сведения см. в статье Linux C++ improvements for cross-platform code sharing and type visualization (Улучшения Linux C++ при использовании кроссплатформенного кода и визуализации типов).

Разработка игр на C++:

Доступны все возможности C++ для создания профессиональных игр на базе DirectX или Cocos2d.

Разработка мобильных приложений на C++ (для iOS и Android):

Теперь в Visual Studio можно создавать мобильные приложения для Android и iOS и отлаживать их.

Универсальные приложения Windows:

C++ поставляется как дополнительный компонент для рабочей нагрузки универсального приложения для Windows. Сейчас обновление проектов C++ следует выполнять вручную. При открытии проекта, ориентированного на v140 UWP, в Visual Studio 2017 следует выбрать набор инструментов платформы v141 на страницах свойств проекта, если у вас не установлена среда Visual Studio 2015.

Новые возможности C++ на универсальной платформе Windows

Теперь у вас есть новые варианты написания и упаковки приложений C++ для универсальной платформы Windows и Магазина Windows: можно использовать Desktop App Converter для упаковки существующего классического приложения для развертывания в Магазине Windows. Дополнительные сведения см. в статьях Использование среды выполнения Visual C++ в проекте Centennial и Перенос классического приложения на универсальную платформу Windows (UWP) с помощью Desktop Bridge.

При написании кода теперь можно использовать C++/WinRT — это проекция стандартного C++ для среды выполнения Windows, реализованная исключительно за счет файлов заголовков. Она позволяет как создавать, так и использовать API среды выполнения Windows с помощью любого соответствующего стандартам компилятора C++. C++/WinRT предоставляет разработчикам на C++ первоклассный доступ к современным API Windows. Дополнительные сведения см. в статье Доступность C++/WinRT в GitHub.

Набор инструментов Clang/C2, который поставляется с Visual Studio 2017, теперь поддерживает параметр /bigobj, который крайне важен для сборки больших проектов. Он также включает несколько важных исправлений как во внутренней, так и во внешней части компилятора.

Анализ кода C++

Средства проверки на соответствие кода C++ проверенным рекомендациям (C++ Core Checker) теперь распространяются вместе с Visual Studio. Просто включите средства проверки в диалоговом окне Code Analysis Extensions (Расширения анализа кода) на страницах свойств проекта, и расширения будут включены при выполнении анализа кода.

Visual Studio 2017 версии 15.3: поддержка правил, связанных с управлением ресурсов. Дополнительные сведения см. в статье Using the C++ Core Guidelines checkers (Использование средств проверки на соответствие рекомендациям C++ Core).

Модульное тестирование

Новые расширения Visual Studio позволяют выполнять модульные тесты на основе тестирования Google и Boost.Test непосредственно в Visual Studio. Дополнительные сведения см. в статье C++ Unit Testing Updates: Announcing Boost.Test Adapter and Improved Google Test Support (Модули тестирования обновлений C++: объявление о поддержке адаптера Boost.Test и улучшенного теста Google).

Диагностика графики в Visual Studio

Диагностика графики Visual Studio — это набор инструментов для регистрации и анализа проблем с производительностью и отрисовкой в приложениях Direct3D. Функции диагностики графики можно использовать для приложений, которые выполняются локально на компьютере под управлением Windows, в эмуляторе устройства Windows либо на удаленном компьютере или устройстве.

  • Ввод и вывод для шейдеров вершин и геометрических объектов: возможность просмотра входных и выходных данных шейдеров вершин и геометрических объектов была одной из наиболее востребованных функций, которая теперь поддерживается в инструментах. Просто выберите этап шейдера вершин или геометрических объектов в представлении "Этапы конвейера", чтобы запустить проверку входных и выходных данных в приведенной ниже таблице.

  • Поиск и фильтрация в таблице объектов: предоставляет быстрый и простой способ поиска нужных ресурсов.

  • Журнал ресурсов: новое представление упрощает просмотр всего журнала изменений ресурса, который использовался во время отрисовки захваченного кадра. Чтобы открыть журнал для любого ресурса, просто щелкните значок часов рядом с гиперссылкой на ресурс.

    Откроется новое окно журнала ресурсов, заполненное данными об изменении ресурса.

    Обратите внимание, что если кадр был записан с включенной функцией записи полного стека вызовов (Visual Studio > Сервис > Параметры > Диагностика графики), то контекст каждого события изменения можно быстро вывести и проверить в проекте Visual Studio.

  • Статистика использования API: просмотр общей сводки по использованию API в кадре. Это может быть удобно при обнаружении вызовов, осуществление которых вы можете не осознавать, или вызовов, которые вы осуществляете слишком много. Это окно можно открыть в анализаторе графики Visual Studio, выбрав Вид > Статистика использования API.

  • Статистика использования памяти: просмотр объема памяти, выделяемого драйвером для создаваемых ресурсов, в кадре. Это окно можно открыть в анализаторе графики Visual Studio, выбрав "Вид > Статистика использования памяти". Данные можно скопировать в CSV-файл для просмотра в таблице. Для этого щелкните правой кнопкой мыши и выберите команду "Копировать все".

  • Проверка кадра: с помощью нового списка ошибок и предупреждений можно легко перемещаться по списку событий на основе потенциальных проблем, обнаруженных уровнем отладки Direct3D. Чтобы открыть окно, в анализаторе графики Visual Studio выберите "Вид -> Проверка кадра". Затем щелкните "Выполнить проверку", чтобы начать анализ. В зависимости от сложности кадра процесс может занять несколько минут.

  • Анализ кадров для D3D12: анализ кадров используется для анализа производительности вызовов рисования с помощью направленных экспериментов "что, если". Перейдите на вкладку "Анализ кадров", чтобы просмотреть отчет. Для получения дополнительных сведений просмотрите видеоролик GoingNative 25: Visual Studio Graphics Frame Analysis (GoingNative 25: анализ кадров графики в Visual Studio).

  • Улучшения использования графического процессора: открытие трассировок, выполненных с помощью профилировщика использования GPU Visual Studio в режиме GPU или с анализатором производительности Windows (WPA) для более детального анализа. Если у вас установлен набор средств для оценки производительности Windows, в правом нижнем углу экрана общих сведений о сеансе вы увидите две гиперссылки — одна для WPA, а другая для режима GPU.

    Трассировки, открытые в режиме GPU с помощью этой ссылки, поддерживают синхронизированное масштабирование и панорамирование на временной шкале в режимах VS и GPU. Флажок в VS используется для включения или отключения синхронизации.

docs.microsoft.com

Заметки о выпуске Visual Studio 2017 15.4

Сообщество разработчиков | Требования к системе | Совместимость | Распространяемый код | Условия лицензии | Блоги | Известные проблемы

Чтобы просмотреть наиболее актуальные материалы, посетите страницу заметок о выпуске на английском языке.

Эта статья содержит сведения о текущем выпуске Visual Studio 2017. Нажмите кнопку, чтобы скачать последнюю версию.

Сведения об установке см. в наших документах по установке и автономной установке.

Отзывы

Мы будем рады узнать ваше мнение! Вы можете сообщить о проблеме, щелкнув пункт Сообщить о проблеме в правой верхней части экрана внутри установщика или самой интегрированной среды разработки Visual Studio. Значок находится в правом верхнем углу. Отслеживать свои отзывы можно на портале сообщества разработчиков. Свои предложения отправляйте через UserVoice.

История выпусков

Дополнительные сведения о выходе выпусков и идентификации версий см. в документе Цикл выпуска Visual Studio 2017.

Известные проблемы

Ознакомьтесь с разделом Известные проблемы.

Дата выпуска: 5 октября 2017 г. — Visual Studio 2017 версии 15.4.0

Сводка. Новые возможности этого выпуска

  • Новый баннер запуска программы установки и установщика сообщает о том, была ли установка успешной. Мы добавили новое предупреждение в конце установки, содержащее ссылки на сообщество разработчиков для получения дополнительных сведений.
  • Теперь вы можете установить пакет SDK для Windows Fall Creators Update напрямую. Это повысит производительность и позволит преобразовывать для просмотра артефакты разработки Fluent.
  • Мы внесли усовершенствования в XAML. Теперь вы можете изменять или удалять ресурсы XAML, а также добавлять элементы ControlTemplate.
  • Мы добавили в Windows Fall Creators Update поддержку платформы .NET Standard 2.0.
  • Платформа .NET Core 2.0 включена по умолчанию для рабочих нагрузок .NET Core и веб-разработки.
  • Проект упаковки приложений Windows позволяет использовать новые шаблоны проектов, помогающие упаковать любой из проектов Windows в контейнер .appx.
  • Вы можете развернуть, тестировать и отлаживать приложения непосредственно на устройствах iOS и Android с помощью Xamarin Live.
  • Теперь вы можете выбрать платформу Linux в качестве целевой из проектов CMake. Используйте существующую базу кода CMake для решения без необходимости преобразовать ее в проект VS.
  • Мы улучшили поддержку Unity в Инструменты Visual Studio и добавили возможность задать указатель инструкций в новой среде выполнения.
  • Пакет SDK для Android теперь устанавливается в отдельном расположении.

Основные ошибки, исправленные в этом выпуске

Мы прислушались к мнениям сообщества разработчиков. В этом списке содержатся 10 набравших наибольшее количество голосов исправлений в этом выпуске.

  • Здесь отображается ссылка.
  • Здесь отображается ссылка.

Просмотрите описанные клиентами проблемы, которые были исправлены в Visual Studio 2017 версии 15.3.

Подробные сведения. Новые возможности этого выпуска

Усовершенствования Visual Studio

Настройка и программа установки
  • Мы добавили в установщик баннер запуска, сигнализирующий об успешной установке Visual Studio (рис. 1).

Рис. 1. Новый баннер запуска, указывающий на успешное выполнение установки
  • Теперь установщик использует определение авто-прокси для скачивания.
  • При сбое некритического компонента (т. е. того, который не препятствует работе интегрированной среды разработки Visual Studio напрямую) установщик теперь отображает предупреждение вместо ошибки. Это изменение дает яснее понять, что Visual Studio можно использовать несмотря на наличие проблем, которые следует решить.
  • При создании автономного макета используются более короткие пути, чтобы администраторы могли разместить автономные установки глубже в иерархиях сетевых папок.
  • Мы отображаем сообщение в конце установки при сбое установки отдельного пакета или при наличии проблем со скачиванием (рис. 2). Оно содержит ссылки на сообщество разработчиков, позволяющие получить дополнительную помощь и решить проблемы, мешающие установить Visual Studio на вашем компьютере.

Рис. 2. Диалоговое окно ошибки с потенциальными решениями
  • Исправлена ошибка, когда установщик неправильно задавал даты и время установки в области "Установка и удаление программ" после обновления Visual Studio.
Редактор
  • Мы исправили проблему, когда средство чтения с экрана JAWS от Freedom Scientific не могло использовать IntelliSense в редакторе Visual Studio.
  • Мы добавили в основной продукт Visual Studio функцию навигации — возможность перехода к определению с помощью сочетания CTRL+щелчок — для Productivity Power Tools.
    • Для языков, которые поддерживают эту функцию (сейчас это C#, VB и Python, в будущих выпусках будут доступны и другие языки), вы сможете удерживать нажатой клавишу CTRL и щелкнуть символ в редакторе Visual Studio, чтобы перейти к его определению.
    • Если вы предпочитаете использовать старый режим выбора слов по CTRL+щелчок, то можете настроить работу данной функции в разделе Сервис > Параметры > Текстовый редактор > Общие > Разрешить выполнение перехода к определению с помощью щелчка мыши, где можно выбрать другие клавиши-модификаторы или полностью отключить эту функцию.
Расширение среды
  • Исправлена ошибка, когда установленные расширения не отображали уведомления об обновлении в Visual Studio, а также не обновлялись автоматически.
Загрузка упрощенного решения
  • Исправлена ошибка, вызывавшая сбои при открытии решения с включенной упрощенной загрузкой решения.

Средства для разработки с помощью универсальной платформы Windows

Выпуск Visual Studio 2017 версии 15.4 привносит множество обновлений для средств разработки универсальной платформы Windows. Ниже представлены сведения о новых возможностях.

Поддержка Windows Fall Creators Update

Visual Studio 2017 версии 15.4 обеспечивает первоклассную поддержку для разработчиков, ориентирующихся на предварительную версию пакета SDK для Windows Fall Creators Update. Теперь вы можете напрямую установить последнюю предварительную версию пакета SDK для Windows Fall Creators Update с помощью рабочей нагрузки разработки универсальной платформы Windows при установке Visual Studio.

Обновленный конструктор XAML для проектов UWP, ориентированных на пакет SDK для Windows Fall Creators Update

Мы внесли значительные изменения в конструктор XAML для проектов UWP, ориентированных на пакет SDK для Windows Fall Creators Update, уделив основное внимание повышению производительности и надежности, а также возможности отрисовки артефактов разработки Fluent. Дополнительные сведения см. в записи блога об обновлении конструктора XMAL в Visual Studio.

Примечание. Изменения в работе конструктора XAML касаются только тех случаев, когда вы создаете приложение UWP, ориентированное на предварительную версию Windows Fall Creators Update.

Улучшения в возможности XAML "Изменить и продолжить"

Теперь вы можете изменять или удалять ресурсы XAML с помощью функции Изменить и продолжить. Кроме того, вы можете добавлять элементы ControlTemplate. Чтобы использовать эти новые функции, нужно ориентироваться на пакет SDK для Windows Fall Creators Update и запускать приложение, применив к Windows последнее обновление Fall Creators Update.

Поддержка .NET Standard 2.0

Windows Fall Creators Update привносит в разработку UWP поддержку .NET Standard 2.0. Чтобы использовать новые API с .NET Standard 2.0, нужно задать в качестве минимальной целевой версии своего приложения предварительную версию пакета SDK для Windows Fall Creators Update. После этого вы сможете ссылаться на пакеты NuGet, библиотеки классов и API .NET Standard 2.0 непосредственно из приложения UWP.

Средства веб-разработки

  • В этом выпуске платформа .NET Core 2.0 доступна во время установки и включена по умолчанию для рабочих нагрузок .NET Core и веб-разработки.
  • В этом выпуске поддерживается формирование шаблонов страниц Razor.
  • Вы можете выполнять публикацию в реестры контейнеров, включая реестр контейнеров Azure и Docker Hub.
  • Средства Функций Azure теперь включены в рабочую нагрузку Azure.
  • При публикации веб-задания Azure его теперь можно опубликовать как активированное веб-задание с помощью выражений CRON.

Проект упаковки приложений Windows

Visual Studio 2017 версии 15.4 привносит новые шаблоны проектов, помогающие упаковать любые проекты Windows в контейнер APPX, позволяя организовать современное распространение или передачу в Магазин Windows.

Чтобы начать работу с проектом упаковки приложений Windows, перейдите в меню Файл > Создать > Проект и выберите новый шаблон Проект упаковки приложений Windows в узле Visual C# > Универсальные приложения Windows (рис. 3).

Рис. 3. Проект упаковки приложений Windows

В новом проекте вы можете добавить ссылку на существующие проекты Windows, например WPF, WinForms или MFC, щелкнув правой кнопкой мыши узел Приложения в обозревателе решений и выбрав пункт Добавить ссылку. После этого вы сможете использовать множество привычных средств UWP, таких как упаковка, редактирование манифеста и связывание с Магазином.

Инструменты Visual Studio для Xamarin

Xamarin Live позволяет разработчикам непрерывно развертывать, тестировать и отлаживать свои приложения прямо на устройствах iOS и Android (рис. 4). Скачав Xamarin Live Player из App Store или Google Play, можно связать устройство с Visual Studio и кардинально изменить подход к созданию мобильных приложений. Эта функциональность сейчас включена в Visual Studio, и ее можно включить, перейдя в меню Сервис > Параметры > Xamarin > Другие > Включить Xamarin Live Player.

Рис. 4. Анимация для режимов связывания, развертывания и динамического редактирования в Xamarin Live Player

Просмотрите заметки о выпуске Инструментов Visual Studio для Xamarin, где приведен полный список изменений в Visual Studio 2017 версии 15.4.

Усовершенствования C++

Теперь вы можете выбрать платформу Linux в качестве целевой из проектов CMake. Это позволяет работать с существующей базой кода, где CMake используется в качестве решения сборки, без необходимости преобразовать ее в проект VS. Если база кода является кроссплатформенной, из Visual Studio можно ориентироваться как на Windows, так и на Linux. Дополнительные сведения см. в записи блога Разработка на Visual C++ для Linux с помощью CMake.

Усовершенствования Инструментов Visual Studio для Unity

  • Мы улучшили поддержку экспериментального компонента .NET 4.6 в Unity 2017.1.
    • Мы добавили возможность задать указатель инструкций в новой среде выполнения.
  • Мы обеспечили поддержку пользовательских сборок (assembly.json) в Unity 2017.2.
  • Мы внесли общие усовершенствования в вычисление выражений во время отладки.

Средства Visual Studio для Apache Cordova

Пакет SDK для Android теперь устанавливается в отдельном расположении в %programdata%. Это даст возможность пользователям управлять установкой общего пакета SDK в другом месте, не затрагивая какие-либо сценарии VS-TACO.

Блоги

Используйте в своей работе аналитическую информацию и рекомендации с сайта "Блоги о средствах для разработчиков".

На сайте Developer Tools Blogs вы получите актуальные сведения обо всех новых выпусках и сможете читать публикации с подробным анализом самых разных функций. Информацию о возможностях .NET читайте в Блоге по DotNet. Мы также предлагаем блоги с подробной информацией от экспертов по каждому языку, например блоги команд по — C#—, VB, C++ и F#—.

Известные проблемы

Просмотрите все существующие известные проблемы и доступные решения в Visual Studio 2017 версии 15.4.

Мы серьезно относимся к вашим отзывам. Чтобы найти список последних проблем, сообщить о новых проблемах и проголосовать за решение существующих проблем, зайдите на сайт сообщества разработчиков.

Просмотрите проблемы, о которых сообщили клиенты и которые были исправлены в Visual Studio 2017 версии 15.3.

Просмотрите проблемы, о которых сообщили клиенты и которые были исправлены в Visual Studio 2017 версии 15.2.

Просмотрите проблемы, о которых сообщили клиенты и которые были исправлены в Visual Studio 2017 версии 15.1.

Просмотрите проблемы, о которых сообщили клиенты и которые были исправлены в Visual Studio 2017 версии 15.0.

Просмотрите проблемы, о которых сообщили клиенты и которые были исправлены в Visual Studio 2017 версии 15.0.

К началу страницы

www.visualstudio.com

Создание библиотеки классов с помощью Visual Basic и .NET Core в Visual Studio 2017

Библиотека классов определяет типы и методы, которые могут быть вызваны из любого приложения. Библиотеку классов, предназначенную для .NET Standard 2.0, можно вызывать из любой реализации .NET, которая поддерживает эту версию .NET Standard. Когда вы завершите создание библиотеки классов, вы сможете по своему усмотрению распространять ее как независимый компонент или включить в состав одного или нескольких приложений.

Примечание

Список версий .NET Standard и поддерживаемых ими платформ см. в разделе .NET Standard.

В этой статье вы создадите простую служебную библиотеку с одним методом для обработки строк. Вы реализуете его как метод расширения, чтобы вызывать его так же, как любой член класса String.

Создание решения для библиотеки классов

Начнем с создания решения для нашего проекта библиотеки классов и связанных с ней проектов. Решение Visual Studio служит контейнером для одного или нескольких проектов. Чтобы создать решение, выполните следующее.

  1. В строке меню Visual Studio выберите Файл > Создать > Проект.

  2. В диалоговом окне Новый проект разверните узел Другие типы проектов и выберите Решения Visual Studio. Присвойте решению имя ClassLibraryProjects и нажмите кнопку ОК.

Создание проекта для библиотеки классов

Теперь можно создать проект библиотеки классов.

  1. В обозревателе решений щелкните правой кнопкой мыши решение ClassLibraryProjects и в контекстном меню выберите Добавить > Новый проект.

  2. В диалоговом окне Добавление нового проекта разверните узел Visual Basic, выберите узел .NET Standard, а затем — шаблон проекта Библиотека классов (.NET Standard). В текстовом поле Имя введите имя проекта StringLibrary. Нажмите ОК, чтобы создать проект библиотеки классов.

    Окно кода затем откроется в среде разработки Visual Studio.

  3. Проверьте, предназначена ли библиотека для правильной версии .NET Standard. В обозревателе решений щелкните проект библиотеки правой кнопкой мыши и выберите пункт Свойства. В текстовом поле Целевая платформа указано, что целевой платформой является .NET Standard 2.0.

  4. Кроме того, в диалоговом окне Свойства удалите текст в поле Корневое пространство имен. Для каждого проекта Visual Basic автоматически создает пространство имен, соответствующее имени проекта. Все пространства имен, определяемые в файлах с исходным кодом, являются родительскими по отношению к этому пространству имен. Нам необходимо определить пространство имен верхнего уровня с помощью ключевого слова namespace.

  5. Замените код, отображаемый в окне кода, следующим текстом, а затем сохраните файл.

Imports System.Runtime.CompilerServices Namespace UtilityLibraries Public Module StringLibrary <Extension> Public Function StartsWithUpper(str As String) As Boolean If String.IsNullOrWhiteSpace(str) Then Return False End If Dim ch As Char = str(0) Return Char.IsUpper(ch) End Function End Module End Namespace

Библиотека классов (UtilityLibraries.StringLibrary) содержит метод с именем StartsWithUpper, который возвращает значение Boolean. Это значение указывает, является ли первым символом текущего экземпляра строки символ верхнего регистра. Символы верхнего регистра определяются по стандарту Юникод. Метод Char.IsUpper(Char) возвращает true, если символ является символом верхнего регистра.

  1. В строке меню выберите Сборка > Собрать решение. Проект должен скомпилироваться без ошибок.

Дальнейшие действия

Итак, вы успешно создали библиотеку. Пока вы еще не вызывали ее методов, поэтому нельзя быть уверенным, что все работает так, как ожидалось. Следующий шаг в разработке библиотеки — тестирование с помощью проекта модульного теста.

docs.microsoft.com

Соответствие стандартам языка Visual C++

В этом разделе приводится сводка соответствия функций компилятора языковым стандартам ISO C++03, C++11, C++14 и C++17, Draft C++20, а также список функций стандартной библиотеки для Visual C++ в Visual Studio 2017 и более ранних версиях. Каждое название функции компилятора и стандартной библиотеки является ссылкой на документ по C++ стандарта ISO, где находится ее описание (если функция доступна на момент публикации). В столбце поддерживаемых версий перечислены версии Visual Studio, в которых впервые появилась поддержка функции.

Сведения об улучшениях соответствия стандартам и других изменениях в Visual Studio 2017 см. в статьях C++ conformance improvements in Visual Studio 2017 (Улучшения соответствия C++ в Visual Studio 2017) и What's New for Visual C++ in Visual Studio 2017 (Новые возможности Visual C++ в Visual Studio 2017). Сведения об изменениях соответствия в более ранних версиях см. в статье Критические изменения в Visual C++ и Visual C++ What's New 2003 through 2015(Новые возможности Visual C++ в версиях 2003–2015). Последние новости от команды разработчиков C++ см. в блоге команды разработчиков Visual C++.

Примечание

Принципы работы с двоичными файлами в Visual Studio 2017 по сравнению с Visual Studio 2015 существенно не изменились.

Функции компилятора

Стандартные возможности библиотеки

Область функции
Функции стандартной библиотеки C++20 Поддерживается
  P0463R1 Порядок байтов Нет
  P0674R1 make_shared() для массивов Нет
Функции стандартной библиотеки C++17 Поддерживается
  P0433R2 Интеграция вывода шаблонов для шаблонов классов в стандартной библиотеке  P0739R0 Улучшение интеграции аргумента шаблона класса со стандартной библиотекой Нет
  P0607R0 Встроенные переменные для стандартной библиотеки Нет
  P0426R1 constexpr для char_traits Нет
  P0030R1 hypot(x, y, z) Нет
  P0033R1 Переформулировка enable_shared_from_this Нет
  P0220R1 Основы работы с библиотеками V1 Частично J
  P0414R2 shared_ptr<T[]>, shared_ptr<T[N]>  P0497R0 Исправление shared_ptr для массивов Нет
  P0083R3 Соединение карт и наборов  P0508R0 Уточнение insert_return_type Нет
  P0005R4 not_fn()  P0358R1 Исправления для not_fn() Нет
  P0067R5 Простые преобразования строк Нет
  P0618R0 Перевод <codecvt> в разряд нерекомендуемых Нет
  P0521R0 Неподдерживаемая shared_ptr::unique() Нет
  P0174R2 Неподдерживаемые части библиотеки Нет
  P0003R5 Удаление динамических спецификаций исключений Нет
  P0302R1 Удаление поддержки распределителя в std::function Нет
  N4562 Основы работы с библиотеками: <memory_resource>  P0337R0 Удаление назначения polymorphic_allocator Нет
  P0024R2 Параллельные алгоритмы  P0336R1 Переименование политик параллельного выполнения  P0394R4 Параллельные алгоритмы следует завершить terminate() для исключений  P0452R1 Объединение параллельных алгоритмов <numeric> Нет
  P0226R1 Специальные математические функции Нет
  P0218R1 <filesystem>  P0219R1 Относительные пути для файловой системы  P0317R1 Кэширование записей каталога для файловой системы  P0392R0 Поддержка string_view в путях файловой системы  P0430R2 Поддержка файловых систем, отличных от POSIX  P0492R2 Разрешение комментариев NB для файловой системы Нет K
  N4562 Основы работы с библиотеками: алгоритм поиска Бойера-Мура ()  P0253R1 Исправления возвращаемых типов модуля поиска VS 2017 15.3 17
  P0031R0 constexpr для <array> (Again) и <iterator> VS 2017 15.3 17
  Расширение средств управления памяти P0040R3 VS 2017 15.3 17
  P0084R2 Определение местоположения возвращаемого значения VS 2017 15.3 17
  P0152R1 atomic::is_always_lock_free VS 2017 15.3 17
  P0154R1 hardware_destructive_interference_sizeи т. д. VS 2017 15.3 17
  P0156R2 Переименование lock_guard в scoped_lock с переменным числом аргументов VS 2017 15.3 17
  P0258R2 has_unique_object_representations VS 2017 15.3 L
  P0295R0 gcd(), lcm() VS 2017 15.3 17
  P0298R3 std::byte VS 2017 15.3 17, byte
  P0403R1 Файлы UDL для <string_view> ("meow"sv, и т. д.) VS 2017 15.3 17
  P0418R2 Требования к атомарной функции compare_exchange memory_order VS 2017 15.3 14
  P0435R1 Переработка common_type  P0548R1 Настройка common_type и длительности VS 2017 15.3 14
  P0505R0 constexpr для <chrono> (Again) VS 2017 15.3 17
  P0513R0 Подделка хэша  P0599R1 Хэш noexcept VS 2017 15.3 14
  P0516R0 Пометка копирования shared_future как noexcept VS 2017 15.3 14
  P0517R0 Создание future_error из future_errc VS 2017 15.3 14
  P0558R1 Разрешение несоответствий базового класса с атомарным именем VS 2017 15.3 14
  P0604R0 Изменение is_callable/result_of на invoke_result, is_invocable, is_nothrow_invocable VS 2017 15.3 17
  N4562 Основы работы с библиотеками: <algorithm> sample() VS 2017
  N4562 Основы работы с библиотеками: <any> VS 2017
  N4562 Основы работы с библиотеками: <optional> VS 2017
  N4562 Основы работы с библиотеками: <string_view> VS 2017
  N4562 Основы работы с библиотеками: <tuple> apply() VS 2017
  P0032R3 Однородный интерфейса для типа variant, any или optional VS 2017
  P0077R2 is_callable, is_nothrow_callable VS 2017
  P0088R3 <variant> VS 2017
  P0163R0 shared_ptr::weak_type VS 2017
  P0209R2 make_from_tuple() VS 2017
  P0254R2 Интеграция string_view и std::string VS 2017
  P0307R2 Повторный перевод необязательной в состояние "больше или равно" VS 2017
  P0393R3 Перевод варианта в состояние "больше или равно" VS 2017
  P0504R0 Пересмотр in_place_t/in_place_type_t<T>/in_place_index_t<I> VS 2017
  P0510R0 Отклонение вариантов Nothing, Arrays, References и Incomplete Type VS 2017
  P0025R1 clamp() VS 2015.3
  P0185R1 is_swappable, is_nothrow_swappable VS 2015.3
  P0272R1 Неконстантный basic_string::data() VS 2015.3
  N4387 Улучшение pair и tuple VS 2015.2 14
  N4508 shared_mutex (Untimed) VS 2015.2 14
  P0004R1 Удаление нерекомендуемых псевдонимов Iostreams VS 2015.2 rem
  P0006R0 Шаблоны переменных для признаков типов (is_same_v и т. д.) VS 2015.2 14
  P0007R1 as_const() VS 2015.2 14
  P0013R1 Признаки типов логических операторов (conjunction и т. д.) VS 2015.2 14
  P0074R0 owner_less<> VS 2015.2 14
  P0092R1 <chrono> floor(), ceil(), round(), abs() VS 2015.2 14
  P0156R0 lock_guard с переменным числом аргументов VS 2015.2 14
  N3911 void_t VS 2015 14
  N4089 Безопасные преобразования в unique_ptr<T[]> VS 2015 14
  N4169 invoke() VS 2015 14
  N4190 Удаление auto_ptr, random_shuffle() и старой <functional> Stuff VS 2015 rem
  N4258 Очистки noexcept VS 2015 14
  N4259 uncaught_exceptions() VS 2015 14
  N4277 Доступная для простого копирования функция reference_wrapper VS 2015 14
  N4279 insert_or_assign()/try_emplace() For map/unordered_map VS 2015 14
  N4280 size(), empty(), data() VS 2015 14
  N4366 Ограничение назначений unique_ptr точными значениями VS 2015 14
  N4389 bool_constant VS 2015 14
  P0063R3 Стандартная библиотека C11 VS 2015 C11, 14
  N4510 Поддержка неполных типов в vector/list/forward_list VS 2013 14
Функции стандартной библиотеки C++14 Поддерживается
  N3462 SFINAE result_of VS 2015.2
  N3302 constexpr для <complex> VS 2015
  N3469 constexpr для <chrono> VS 2015
  N3470 constexpr для <array> VS 2015
  N3471 constexpr для <initializer_list>, <tuple>, <utility> VS 2015
  N3545 integral_constant::operator()() VS 2015
  N3642 Файлы UDL для <chrono>, <string> (1729ms, "meow"s, и т. д.) VS 2015
  N3644 Пустые однонаправленные итераторы VS 2015
  N3654 quoted() VS 2015
  N3657 Разнородный ассоциативный поиск VS 2015
  N3658 integer_sequence VS 2015
  N3659 shared_mutex (Timed) VS 2015
  N3668 exchange() VS 2015
  N3669 Исправление функций-членов constexpr без константы VS 2015
  N3670 get<T>() VS 2015
  N3671 equal(), is_permutation(), mismatch() с двойным диапазоном VS 2015
  N3778 Освобождение с указанием размера VS 2015
  N3779 Файлы UDL <complex> (3.14i и т. д.) VS 2015
  N3789 constexpr для <functional> VS 2015
  N3887 tuple_element_t VS 2015
  N3891 Переименование shared_mutex (Timed) в shared_timed_mutex VS 2015
  N3346 Требования к минимальным элементам контейнера VS 2013
  N3421 Прозрачные функции операторов (less<> и т. д.) VS 2013
  N3655 Шаблоны псевдонимов для <type_traits> (decay_t и т. д.) VS 2013
  N3656 make_unique() VS 2013
  N3924 Нерекомендуемое использование rand() Н/Д

Набор совместно указанных документов означает, что функция была выбрана как соответствующая стандарту, и затем также был одобрен один или несколько документов по улучшению или расширению этой функции. Эти функции реализованы вместе.

Поддерживаемые значения

Нет означает, что функция еще не реализована.Частично означает, что реализация в Visual Studio 2017 является неполной. Дополнительные сведения см. в разделе примечаний.Н/Д означает, что функции не описаны в документах с предложениями. Эти документы изменили язык стандарта, но не привели к действиям со стороны разработчиков. Они указаны для полноты представления информации.VS 2010 — функции, которые поддерживаются в Visual Studio 2010.VS 2013 — функции, которые поддерживаются в Visual Studio 2013.VS 2015 — функции, которые поддерживаются в Visual Studio 2015 RTM.VS 2015.2 и VS 2015.3 — функции, которые поддерживаются в Visual Studio 2015 с обновлением 2 и Visual Studio 2015 с обновлением 3, соответственно.VS 2017 — функции, которые поддерживаются в Visual Studio 2017 RTM.VS 2017 15.3 — функции, которые поддерживаются в Visual Studio 2017 версии 15.3.

Примечания

A Игнорирование динамических спецификаций исключений в C++03, которые являлись нерекомендуемыми в C++11. Их реализация не планируется, так как предполагается, что они будут удалены из будущего стандарта C++.B Улучшена поддержка компилятора для двухфазного поиска имени, но она остается недоработанной.B Поддержка компилятора для выражения SFINAE была достаточной для стандартной библиотеки с момента выхода Visual Studio 2015 с обновлением 2, но эта поддержка остается незавершенной.C Поддержка компилятора для правил препроцессора C99 является незавершенной в Visual Studio 2017. Поддерживаются макросы с переменным числом аргументов, но в поведении препроцессора существует множество ошибок.D Помечено как "Неприменимо", так как для поддержки расширенных целочисленных типов компиляторы разрешены, но не требуются. Мы решили не поддерживать их, как GCC и Clang.D Помечено как "Неприменимо", так как для реализации этой оптимизации компиляторы разрешены, но не требуются.G Поддерживается в /std: c++14 с отключаемым предупреждением.H Эта функция была доступна в предварительном выпуске Visual Studio 2017 версии 15.3, но после обнаружения ошибки она была удалена из выпуска.J Функции, которые не были завершены в Visual Studio 2015, указаны в другом месте в этой таблице.K Filesystem TS реализована как <экспериментальная/filesystem> и <filesystem> по историческим причинам, но ее реализация должна быть исправлена до перемещения ее пространства имен. До этих пор функция будет помечена как еще нереализованная.L Поддерживается встроенными функциями компилятора. Эта встроенная функция еще недоступна в Clang. Эта функция доступна, но не включена в Intellisense.14 Эти функции C++17 всегда включены, даже если указано значение по умолчанию /std:c++14. Это происходит, потому что функция реализована до введения параметров /std или из-за сложных условий реализации.17 Эти функции выключены параметром компилятора /std:c++17 (или /std:c++latest).byte std::byte поддерживают /std:c++17 (или /std:c++latest), но так в некоторых случаях эта версия может конфликтовать с заголовками Windows SDK, предусмотрен детально настроенный макрос явного отказа. Его можно отключить, определив _HAS_STD_BYTE как 0.C11 В Universal CRT реализованы части стандартной библиотеки C11, необходимые для C++17, за исключением альтернативных спецификаторов преобразования E и O C99 strftime(), исключительного режима C11 fopen() и C11 aligned_alloc(). Маловероятно, что последний компонент будет реализован, так как в C11 aligned_alloc() указан так, что он становится несовместимым с реализацией free(), а именно, free() должен быть способен обрабатывать точно выровненные распределения.rem Компоненты удалены, когда был указан параметр компилятора /std:c++17 (или /std:c++latest). Эти функции имеют макрос явного отказа: _HAS_AUTO_PTR_ETC, _HAS_FUNCTION_ALLOCATOR_SUPPORT, _HAS_OLD_IOSTREAMS_MEMBERS и _HAS_UNEXPECTED.

См. также

Справочник по языку C++Стандартная библиотека C++Улучшения соответствия C++ в Visual Studio 2017Новые возможности Visual C++ в Visual Studio 2017Журнал изменений Visual C++ 2003–2015Новые возможности Visual C++ 2003–2015Блог команды разработчиков Visual C++

docs.microsoft.com

Visual C++ в Visual Studio 2015

 

Опубликовано: Октябрь 2016

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

Язык программирования Visual C++ и средства разработки позволяют разрабатывать универсальные приложения Windows неуправляемого кода, классические и серверные приложения неуправляемого кода, межплатформенные библиотеки для Android, iOS и Windows, а также управляемые приложения, работающие на платформе .NET Framework.

Для кого предназначена эта документация?

Этот материал предназначен для разработчиков на C++, создающих программы.

  • Если вам нужен определенный распространяемый пакет C++ и компоненты среды выполнения для запуска программы, перейдите в Центр загрузки Майкрософт и введите в поле поиска Visual C++.

  • Если вы хотите ознакомиться с принципами программирования на C++, перейдите на один из множества соответствующих ресурсов или приобретите книгу Programming — Principles and Practice Using C++ (Second Edition) (Программирование: принципы и практика использования C++, изд. 2), которую написал создатель языка C++ Бьёрн Страуструп (Bjarne Stroustrup). В материалах по Visual C++ предполагается, что у вас уже есть базовые знания о C++.

  • Если вам необходим компилятор Visual C++, необходимо скачать платную или бесплатную версию Visual Studio 2015 на сайте https://www.visualstudio.com/.

 Предупреждение

В Visual Studio 2015 Visual C++ не устанавливается по умолчанию. При установке следует выбрать выборочный вариант установки, а затем выбрать нужные компоненты C++. Или, если среда Visual Studio уже установлена, выберите Файл/Создать/Проект/C++, после чего будет выведено предложение установить необходимые компоненты.

Новые возможности Visual C++Новые возможности Visual C++.

Критические изменения в Visual C++ 2015Критические изменения в данной версии.

Возвращение к C++Дополнительные сведения о современных методах программирования на C++ на основе C ++ 11 и C ++ 14 для написания быстродействующего и безопасного кода и исключения многих типичных ошибок программирования в стиле C.

How to Report a Problem with the Visual C++ ToolsetСведения о создании эффективных отчетов об ошибках с использованием набора инструментов Visual C++ (компилятора, компоновщика и других средств) и информация о способах отправки отчета.

Руководство по переносу и обновлению Visual C++Руководство по переносу кода и обновлению проектов для Visual C++ в Visual Studio 2015, включая перенос кода C++ в Windows 10 и универсальную платформу Windows.

Поддержка возможностей C++ 11/14/17Подробнее о поддержке возможностей C++11 и С++14 в Visual C++.

Блог команды разработчиков Visual C++Описание новых возможностей и актуальная информация от разработчиков Visual C++.

Загружаемые файлы Visual StudioЗагрузка Visual C++.

Инструменты и шаблоны Visual C++ в выпусках Visual StudioСведения о разных редакциях Visual C++.

Поддерживаемые платформыПоддерживаемые платформы.

Примеры кода на Visual C++Информация о примерах.

Visual Studio CommunityОбращение за помощью, регистрация ошибок и предложения по Visual Studio.

Универсальные приложения WindowsРуководства и справочные материалы в Центре разработчика Windows. Дополнительные сведения о разработке приложений для Магазина Windows см. в разделе Разработка приложений для Магазина Windows с помощью Visual Studio и Схема создания приложений для Магазина Windows на С++.

Классические приложения Windows (Visual C++)Создание классических приложений, включающих цикл обработки сообщений и обратные вызовы.

DLL в Visual C++Использование Win32, ATL и MFC для создания классических библиотек DLL для Windows, а также сведения о компиляции и регистрации библиотеки DLL.

Параллельное программированиеИспользование библиотеки параллельных шаблонов, C++ AMP, OpenMP и другим компонентов, связанных с многопоточностью в Windows.

Рекомендации по безопасностиЗащита приложений от вредоносного кода и несанкционированного использования.

Облачное и веб-программированиеВ C++ имеются несколько параметров для соединения с веб-узлом и облаком.

Доступ к даннымДля подключения к базам данных используйте ODBC и другие технологии доступа к базам данных.

Текст и строкиПодробнее о работе с другими форматами текста и строк и кодировках для локальных и международных разработок.

Дополнительные сведения о создании проектов, работе с файлами исходного кода, ссылках на библиотеки, компиляции, отладке, профилировании, развертывании и т. д. см. в разделе Интегрированная среда разработки и средства разработки.

Сведения о языке C++ см. в документе Справочник по языку C++.

Сведения о препроцессоре C++ см. в документе Справочник по препроцессору C/C++.

В следующих разделах приведены сведения о различных библиотеках C++, включенных в Visual C++.

Справочник по библиотеке времени выполнения CВключает альтернативы с улучшенной безопасностью для функций, которые, как известно, могут представлять угрозу безопасности.

Стандартная библиотека C++Библиотека стандартных шаблонов (STL).

Библиотека шаблонных классов (ATL)Поддержка компонентов и приложений COM.

Библиотеки Microsoft Foundation Class (MFC)Поддержка создания классических приложений с традиционными пользовательскими интерфейсами или интерфейсами в стиле Office.

Библиотека параллельных шаблоновАсинхронные и параллельные алгоритмы, выполняемые в ЦП.

C++ AMP (C++ Accelerated Massive Parallelism)Массово-параллельные алгоритмы, выполняемые в GPU.

Библиотека шаблонов среды выполнения Windows (WRL)Приложения и компоненты Магазин Windows 8.x.

программирование .NET с использованием C++/CLIПрограммирование для общеязыковой среды выполнения (CLR).

См. также документацию по STL/CLR и Библиотека поддержки C++.

Этот раздел содержит ссылки на библиотеки, которые не входят в состав Visual Studio, но доступны для загрузки и использования с Visual C++.

BoostПопулярная и широко распространенная библиотека.

C++ REST SDK.Библиотека Microsoft для взаимодействия с веб-службами по протоколу HTTP.

Ресурсы, посвященные Visual C++Дополнительные ресурсы информации по Visual C++.

Стандартная C++Дополнительные сведения о C++, обзор Modern C++ и ссылки на книги, статьи, обсуждения и данные о событиях

Знакомство с Visual C++Начало изучения C++.

Справочник по языку CСправочник по библиотеке времени выполнения CВнутренние объекты компилятора и язык ассемблера

msdn.microsoft.com


Смотрите также