Использование библиотек и компонентов
В проектах C++ часто требуется вызывать функции или обращаться к данным в двоичных файлах, таких как статические библиотеки (LIB-файлы), библиотеки DLL, компоненты среды выполнения Windows, компоненты COM или сборки .NET. В этих случаях необходимо настроить проект таким образом, чтобы он мог находить нужные двоичные файлы во время сборки. Конкретный способ сделать это зависит от типа вашего проекта, типа двоичного файла, а также от того, был ли этот двоичный файл собран в том же решении, что и ваш проект.
Использование скачанных библиотек с помощью vcpkg
Если вы хотите использовать скачанную библиотеку с помощью диспетчера пакетов vcpkg, то приведенные ниже инструкции можно пропустить. Дополнительные сведения см. в разделе:
- vcpkg в проектах CMake
- Установка и использование пакетов с CMake в Visual Studio
- vcpkg в проектах MSBuild
- Руководство. Установка и использование пакетов с MSBuild в Visual Studio
Использование статических библиотек
Если проект статической библиотеки был создан в том же решении:
- #include файл заголовка для статической библиотеки с помощью кавычки. В типовом решении путь начинается с ../ . При поиске вы можете использовать предложения технологии IntelliSense.
- Добавьте ссылку на проект статической библиотеки. Щелкните правой кнопкой мыши элемент Ссылки в узле проекта приложения в обозревателе решений и выберите Добавить ссылку.
Если статическая библиотека не входит в состав решения:
- Щелкните правой кнопкой мыши узел проекта приложения в обозревателе решений и выберите Свойства.
- На странице свойств Каталоги VC++ добавьте в раздел Пути библиотек путь к каталогу, который содержит LIB-файл. Затем добавьте в раздел Включаемые каталоги путь к файлам заголовков библиотеки.
- На странице свойств компоновщика > добавьте имя LIB-файла в дополнительные зависимости.
Библиотеки динамической компоновки
Если библиотека DLL была собрана в рамках того же решения, что и приложение, выполните те же действия, что и для статической библиотеки.
Если библиотека DLL не входит в состав решения приложения, вам потребуются DLL-файл, заголовки с прототипами для экспортируемых функций и классов, а также LIB-файл, содержащий необходимую для компоновки информацию.
- Скопируйте DLL-файл в папку выходных данных проекта или другую папку, которая задана в качестве стандартной для поиска библиотек DLL в Windows. Дополнительные сведения см. в разделе «Порядок поиска библиотеки динамических ссылок».
- Выполните шаги с 1 по 3 для статических библиотек, чтобы задать пути к заголовкам и LIB-файлу.
COM-объекты
Если в собственном приложении C++ требуется использовать COM-объект и этот объект зарегистрирован, вам достаточно вызвать функцию CoCreateInstance и передать в нее CLSID объекта. Система выполнит поиск объекта в реестре Windows и загрузит его. В проекте C++/CLI COM-объект можно использовать таким же образом. Кроме того, он может использовать его, добавив ссылку на нее из списка добавления ссылок > COM и используя ее через вызываемую оболочку среды выполнения.
Сборки .NET с компонентами среды выполнения Windows
В проектах универсальной платформы Windows (UWP) или C++/CLI для использования сборок .NET или компонентов среды выполнения Windows можно добавить ссылку на сборку или компонент. В узле Ссылки проекта универсальной платформы Windows (UWP) или C++/CLI представлены ссылки на часто используемые компоненты. Щелкните правой кнопкой мыши узел Ссылки в Обозревателе решений, чтобы открыть диспетчер ссылок и просмотреть доступные в системе компоненты. Нажмите кнопку Обзор, чтобы перейти к папке, в которой находится нужный вам пользовательский компонент. Поскольку сборки .NET и компоненты среды выполнения Windows содержат встроенные сведения о типах, для просмотра их методов и классов можно щелкнуть правой кнопкой мыши и выбрать команду Просмотреть в обозревателе объектов.
Свойства ссылки
Каждый тип ссылки имеет свойства. Свойства можно просмотреть, выбрав ссылку в обозревателе решений и нажав клавиши Alt + ВВОД. Также можно щелкнуть ссылку правой кнопкой мыши и выбрать пункт Свойства. Одни свойства доступны только для чтения, другие можно изменять. Тем не менее обычно эти свойства не требуется изменять вручную.
Свойства ссылки ActiveX
Свойства ссылки ActiveX доступны только для компонентов COM. Данные свойства отображаются только тогда, когда в панели Ссылки выбран компонент COM. Эти свойства нельзя изменить.
- Управление полным путем Отображает путь к каталогу элемента управления, на который указывает ссылка.
- GUID элемента управления Отображает GUID для элемента управления ActiveX.
- Версия элемента управления Отображает версию элемента управления ActiveX, на который указывает ссылка.
- Имя библиотеки типов Отображает имя библиотеки типов, на которую указывает ссылка.
- Средство программы-оболочки Отображает средство, которое используется для создания сборки взаимодействия из указанной библиотеки COM или элемента управления ActiveX.
Свойства ссылки на сборку (C++/CLI)
Свойства ссылки на сборку доступны только для ссылок на сборки .NET Framework в проектах C++/CLI. Данные свойства отображаются только тогда, когда в панели Ссылки выбрана сборка .NET Framework. Эти свойства нельзя изменить.
- Относительный путь Отображает относительный путь от каталога проекта к сборке, на которую указывает ссылка.
Свойства сборки
Следующие свойства доступны для различных типов ссылок. Они позволяют задавать способ построения со ссылками.
- Копировать локальные Указывает, следует ли автоматически копировать сборку, на которую указывает ссылка, в целевое расположение во время сборки.
- Копировать локальные вспомогательные сборки (C++/CLI) Указывает, следует ли автоматически копировать вспомогательные сборки ссылочной сборки в целевое расположение во время сборки. Используется, только если для параметра Копировать локальные задано значение true .
- Выходные данные ссылочной сборки Указывает, что эта сборка используется в процессе сборки. true означает, что эта сборка используется в командной строке компилятора во время выполнения сборки.
Свойства ссылок проектов на проекты
Следующие свойства определяют ссылку проекта на проект из проекта, выбранного в панели Ссылки, на другой проект в том же решении. Дополнительные сведения см. в статье Управление ссылками в проекте.
- Компоновать зависимости библиотек Если это свойство имеет значение True, система проектов установит в зависимом проекте связь с LIB-файлами, создаваемыми независимым проектом. Обычно устанавливается значение True.
- Идентификатор проекта Уникальный идентификатор независимого проекта. Значение свойства — это GUID внутренней системы, который невозможно изменить.
- Использовать входные данные зависимостей библиотек Если это свойство имеет значение False, система проектов не установит в зависимом проекте связь с OBJ-файлами для библиотеки, созданной независимым проектом. Таким образом, это значение отключает инкрементную компоновку. Обычно указывается значение False, так как при наличии множества независимых проектов сборка приложения может занять длительное время.
Ссылочные свойства только для чтения (COM & .NET)
Следующие свойства существуют в ссылках на компоненты COM и сборки .NET, и их нельзя изменить.
- Имя сборки Отображает имя сборки для сборки, на которую указывает ссылка.
- Язык и региональные параметры Отображает язык и региональные параметры выбранной ссылки.
- Description Отображает описание выбранной ссылки.
- Полный путь Отображает путь к каталогу сборки, на которую указывает ссылка.
- Identity Для сборок .NET Framework отображает полный путь. Для компонентов COM отображает GUID.
- Подпись Отображает метку ссылки.
- Имя Отображает имя ссылки.
- Токен открытого ключа Отображает токен открытого ключа для идентификации сборки, на которую указывает ссылка.
- Строгое имяtrue , если сборка, на которую указывает ссылка, имеет строгое имя. Сборка со строгим именем имеет уникальную версию.
- Версия Отображает версию сборки, на которую указывает ссылка.
Просмотр библиотек DLL и исполняемых файлов в окне «Модули» (C#, C++, Visual Basic, F#)
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
В процессе отладки в Visual Studio окно Модули отображает список используемых приложением библиотек DLL и исполняемых файлов (.exe), а также сведения о них.
Окно «Модули» недоступно при отладке SQL и скриптов.
Использование окна модулей
Чтобы открыть окно «Модули» во время отладки, выберите Отладка>Окна>Модули или нажмите клавиши CTRL+ALT+U.
По умолчанию модули в окне Модули упорядочены в порядке загрузки. Чтобы выполнить сортировку по любому столбцу окна, щелкните заголовок соответствующего столбца.
Отправка символов
В столбце Состояние символов в окне Модули показано, для каких модулей загружены отладочные символы. Если здесь указано состояние Загрузка символов пропущена, Невозможно найти или открыть PDB-файл или Загрузка отключена параметром включения и исключения, вы можете загрузить символы вручную. Дополнительные сведения о загрузке и использовании символов см. в статье Указание файлов символов (.pdb) и исходных файлов.
Загрузка символов вручную
- В окне Модули щелкните правой кнопкой модуль, для которого не загружены символы.
- Выберите Сведения о загрузке символов, чтобы узнать, почему символы не были загружены.
- Щелкните Загрузить символы, чтобы загрузить символы вручную.
- Если символы не загружаются, выберите Параметры символов, чтобы открыть диалоговое окно Параметры и указать или изменить расположение для загрузки символов. Вы можете скачать символы с общедоступных серверов символов Майкрософт или других аналогичных серверов, а также загрузить их из локальной папки на компьютере. Дополнительные сведения см. в разделе Настройка расположения файлов символов и поведения при загрузке.
Изменение параметров поведения при загрузке символов
- В окне Модули щелкните правой кнопкой мыши любой модуль.
- Выберите Параметры символов.
- Выберите Загрузить все символы или выберите конкретные модули.
- Нажмите ОК. Изменения вступят в силу при следующем сеансе отладки.
Изменение поведения загрузки символов для конкретного модуля
- В окне Модули щелкните правой кнопкой мыши требуемый модуль.
- В контекстном меню установите или снимите флажок Всегда загружать автоматически. Изменения вступят в силу при следующем сеансе отладки.
См. также
- Прерывание выполнения
- Просмотр данных в отладчике
- Указание файлов символов (PDB) и файлов с исходным кодом
Microsoft Visual C++
Microsoft Visual C++ (сокр. MSVC) — программа-компилятор для языков программирования C, C++, C++/CLI и C++/CX от компании Microsoft, представляющая собой набор библиотек и средств разработки на языках ассемблера, C++ и C, которые входят в состав Visual Studio в Windows [1] .
Библиотека Microsoft Visual C++
Иконка Visual Studio
В программу Visual Studio входят так называемые «стандартные библиотеки». Это наборы предварительно написанного программного обеспечения, позволяющие программистам избежать переписывания общих последовательностей кода. Программисты для улучшения качества кода и ускорения программирования используют эту коллекцию (стандартные библиотеки) предварительно написанного и тщательно протестированного программного обеспечения [2] .
MSVC — это программное обеспечение компании Microsoft, первоначально отдельный продукт, позднее — часть Visual Studio, доступный как в пробной, так и в бесплатной форме. Он содержит инструменты для разработки и отладки кода C++, особенно кода, написанного для Windows API, DirectX и .NET.
Распространяемый компонент Visual C++ устанавливает библиотеки среды выполнения Microsoft C и C++ (MSVC). Эти библиотеки необходимы для многих приложений, созданных с помощью средств Microsoft C и C++. Если приложение использует эти библиотеки, перед установкой приложения в целевой системе необходимо установить пакет распространяемого Microsoft Visual C++. Архитектура распространяемого пакета должна соответствовать целевой архитектуре приложения. Версия распространяемого компонента должна быть по крайней мере той же, что и набор инструментов сборки MSVC, используемый для сборки приложения.
Visual Studio
Microsoft Visual C++ (MSVC) является частью комплекта Microsoft Visual Studio.
Visual Studio — это среда программирования (IDE) для языка C++ и других, самая популярная IDE для программирования на С++.
Средства и библиотеки MSVC позволяют создавать собственные классические и серверные приложения Windows, приложения универсальной платформы Windows (UWP) или управляемые приложения и библиотеки, использующие платформу .NET Framework. Доступно создание кроссплатформенных библиотек и приложений, работающих в Windows, Linux, Android и iOS. С помощью MSVC можно создавать любые сложные приложения из простых консольных приложений для компьютеров с Windows [3] .
Примечания
- ↑TylerMSFT, Taojunshen, corob-msft, DCtheGeek, john-par, mikeblome.C и C++ в Visual Studio(неопр.) . https://www.microsoft.com/ (2023.04.03). Дата обращения: 2023.05.26.
- ↑Leo A. Notenboom.Do I Need All These Microsoft Visual C++ Redistributables?(англ.). https://askleo.com/ (2020.09.07). Дата обращения: 2023.05.26.
- ↑Разработка приложений на C и C++(неопр.) . https://www.microsoft.com/. Дата обращения: 2023.05.26.
Данная статья имеет статус «готовой». Это не говорит о качестве статьи, однако в ней уже в достаточной степени раскрыта основная тема. Если вы хотите улучшить статью — правьте смело!
- Знание.Вики:Cite web (не указан язык)
- Технологии
- Все статьи
- Программное обеспечение Microsoft
- Программное обеспечение
- Языки программирования
Где найти библиотеки, подключаемые по умолчанию, в Visual Studio? (С++)
Насколько я понимаю, Visual Studio подключает некоторые библиотеки по умолчанию, даже если они не описаны в программе, и в другой среде программа может и не скомпилироваться. Где найти эти библиотеки, и как отключить их, чтобы быть уверенным, что программа запустится у другого человека? Допустим, функция rand, вроде как, есть в библиотеках cstdlib и random, но её почему-то можно вызвать и без подключения этих библиотек.
Отслеживать
задан 15 фев 2021 в 17:39
35 3 3 бронзовых знака
cstdlib и random — это не библиотеки, а заголовочные файлы стандартной библиотеки, идущей вместе с компилятором. А для использования rand требуется подключить stdlib.h Visual Studio ничего по-умолчанию не подключает. Скорее даже наоборот, по какой-то причине регулярно появляются вопросы «как подключить библиотеку».
15 фев 2021 в 17:50
Возможный дубликат вопроса: Visual Studio Community 2015 C++ Запуск проектов на другом ПК
15 фев 2021 в 18:24
@user7860670, STL — это набор библиотек, библиотека библиотек, также как Boost. Вот они все en.cppreference.com/w. Filesystem library, Thread support library, String library.
16 фев 2021 в 10:16
@megorit STL это Stepanov’s Template Library — библиотека шаблонов от Александра Степанова. Она давно стала частью стандарта и отдельно уже практически не используется. А всякие randrom string и т.п. — это части стандартной библиотеки С++.
16 фев 2021 в 11:17
@user7860670, STL — Standard Template Library. Её как раз по отдельности используют. Если не нужны потоки, то вы их не подключаете.