Перейти к содержимому

Как подключить библиотеку в visual studio c 2019

  • автор:

Как подключить библиотеку в проекте на С++

При использование Visual Studio: самый простой — в любом файле добавить запись:

#pragma comment(lib, "") 

Как альтернатива, можно указать lib-файл в свойствах проекта, для этого перейдите к пункту:

  1. Linker → General → Additional Library Directories — указать каталог с lib-файлов.(напр. D:\ace\lib)
  2. Linker → Input → Additional Dependencies — указать само название lib файла (напр. ace_vc11.lib)

Так же в C/C++ → General → Additional Include Directories можно указать путь к *.h файлам, чтоб в своих исходниках не прописывать полный путь на диске.

Update:

Если библиотека из себя представляет только h-файл(такое возможно), тогда достаточно просто написать:

#include "" 

и далее пользоваться предоставленным функционалом.

Но в основном библиотека представляет из себя *.lib -файл и *.h -файлы, необходимые для сборки своего приложения а также непосредственно *.dll -файл, необходимый для запуска приложения.

Подключение и использование библиотек в Visual Studio

В качестве примера мы рассмотрим подключение библиотеки SDL к нашему проекту в Visual Studio 2017 (работать будет и с более новыми версиями Visual Studio).

Оглавление:

  • Шаг №1: Создаем папку для хранения библиотеки
  • Шаг №2: Скачиваем и устанавливаем библиотеку
  • Шаг №3: Указываем путь к заголовочным файлам библиотеки
  • Шаг №4: Указываем путь к файлам с реализацией библиотеки
  • Шаг №5: Копируем dll-ку в папку с проектом
  • Шаг №6: Тестируем

Шаг №1: Создаем папку для хранения библиотеки

Создаем папку Libs на диске C ( C:\Libs ).

Шаг №2: Скачиваем и устанавливаем библиотеку

Заходим на сайт https://www.libsdl.org/download-2.0.php, пролистываем вниз до «Development Libraries» и скачиваем SDL2-devel-2.0.9-VC.zip (Visual C++ 32/64-bit). После успешного скачивания нужно разархивировать этот архив в папку Libs .

Шаг №3: Указываем путь к заголовочным файлам библиотеки

Открываем свой любой проект в Visual Studio или создаем новый, переходим в «Обозреватель решений» > кликаем правой кнопкой мыши (ПКМ) по названию нашего проекта > «Свойства» :

В «Свойства конфигурации» ищем вкладку «С/С++» > «Общие» . Затем выбираем пункт «Дополнительные каталоги включаемых файлов» > нажимаем на стрелочку в конце > «Изменить» :

В появившемся окне кликаем на иконку с изображением папки, а затем на появившееся троеточие:

Заголовочные файлы находятся в папке include внутри нашей библиотеки, поэтому переходим в нее ( C:\Libs\SDL2-2.0.9\include ) и нажимаем «Выбор папки» , а затем «ОК» :

Шаг №4: Указываем путь к файлам с реализацией библиотеки

Переходим на вкладку «Компоновщик» > «Общие» . Ищем пункт «Дополнительные каталоги библиотек» > нажимаем на стрелочку в конце > «Изменить» :

Опять же, нажимаем на иконку с папкой, а затем на появившееся троеточие. Нам нужно указать следующий путь: C:\Libs\SDL2-2.0.9\lib\x86 . Будьте внимательны, в папке lib находятся две папки: x64 и x86 . Даже если у вас Windows разрядности x64, указывать нужно папку x86 . Затем «Выбор папки» и «ОК» :

После этого переходим в «Компоновщик» > «Ввод» . Затем «Дополнительные зависимости» > нажимаем на стрелочку в конце > «Изменить» :

В появившемся текстовом блоке вставляем:

Затем переходим в «Компоновщик» > «Система» . После этого «Подсистема» > нажимаем на стрелочку вниз > выбираем «Консоль (/SUBSYSTEM:CONSOLE)» > «Применить» > «ОК» :

Шаг №5: Копируем dll-ку в папку с проектом

Переходим в папку x86 ( C:\Libs\SDL2-2.0.9\lib\x86 ), копируем SDL2.dll и вставляем в папку с вашим проектом в Visual Studio. Чтобы просмотреть папку вашего проекта в Visual Studio, нажмите ПКМ по названию вашего проекта > «Открыть содержащую папку» :

Затем вставляем скопированный файл (SDL2.dll) в папку с проектом (где находится рабочий файл .cpp):

Шаг №6: Тестируем

Теперь, чтобы проверить, всё ли верно мы сделали — копируем и запускаем следующий код:

int main ( int argc , char * argv [ ] )
if ( SDL_Init ( SDL_INIT_EVERYTHING ) < 0 ) std :: cout << "SDL initialization failed. SDL Error: " << SDL_GetError ( ) ; std :: cout << "SDL initialization succeeded!" ; std :: cin . get ( ) ;

Если результат следующий:

SDL initialization succeeded!

Значит мы успешно подключили библиотеку SDL к нашему проекту!

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

(136 оценок, среднее: 4,70 из 5)

Статические и динамические библиотеки

C++11. Нововведения

Комментариев: 13

Спустя время вернулся чтобы порекомендовать ЛУЧШИЙ метод подключения сторонник библиотек в Visual Studio. Рассмотрим на примере весьма полезной библиотеки длинной арифметики gmp, а точнее ее брата близнеца для windows — mpir! Установка vcpkg Для установки любой библиотеки, которую создала более-менее приличная компания вам понадобится только vcpkg. Для установки vcpkg открываем Visual Studio > Git > Клонировать репозиторий . В расположение репозитория указываем https://github.com/microsoft/vcpkg Путь указываем на свое усмотрение, у меня это C:\vcpkg Нажимаем «Клонировать» и ожидаем завершения процесса. Получаем сообщение о том, что один или несколько объектов небыли загружены, ничего страшного. Можно закрыть Visual Studio. Открываем командную строку, для тех кто не знает как это сделать: нажимаем Win+R и в окошке «Выполнить» пишем: cmd В командной строке: cd C:\vcpkg (или путь, который вы указали для vcpkg в Visual Studio). В итоге рабочая папка командной строки должна измениться на путь к вашей vcpkg. (в данном случае C:\vcpkg ). В командной строке пишем: bootstrap-vcpkg.bat — Ожидаем окончания процесса. В командной строке: vcpkg integrate install — Ожидаем окончания процесса. На этом установка vcpkg завершена, теперь мы можем его использовать для установки любой библиотеки (о которой он знает, конечно же, а таких бесконечно много). Установка библиотек Теперь установка самой библиотеки. Открываем Visual Studio, консольный проект и пишем #include , например в моем случае: #include , такой библиотеки в моем Visual Studio еще нет, но vcpkg сразу предлагает ее установить. Возле вашего #include появляется помощник vcpkg и предлагает скопировать команду для установки библиотеки в буфер обмена, нажимаем ее. Открываем командную строку, переходим в рабочую папку vcpkg: ( Win+R , в окошке «Выполнить»: cmd , в командной строке: cd C:\vcpkg или путь к вашему vcpkg) Теперь, когда мы в командной строке находимся в рабочей папке с vcpkg вводим команду из буфера обмена, которую мы получили в Visual Studio, в моем случае для библиотеки GMP она выглядит так: vcpkg install mpir:x64-windows Ожидаем окончания процесса (может занять несколько минут). Открываем Visual Studio, можем использовать #include Прелесть метода заключается в том, что вам не нужно линковать библиотеку или делать какие либо настройки вашего проекта кроме непосредственного подключения библиотеки с помощью #include
Это касается всех проектов и всех библиотек, которые знает vcpkg. Использовал Visual Studio Enterprise 2022.

Сработало только с версией х64, видимо для тех у кого 64-битная IDE нужно делать так же.

Юрий! Статья несомненно хорошая, но не полная и с недочётом.
Недочёт в следующем: не учтён конфигуратор решений. Если в конфигурации будет «Debug», а в изменяемых свойствах стоять «Relase», то всё сделаешь правильно, а файл с библиотекой найден не будет.
Кроме того, хоть пару слов желательно было бы услышать о том, зачем выполнять тот или иной пункт, так как тогда легче было бы повторить всё это в другой ситуации. Но, всё равно, большое спасибо за статью, помогла!

Использование библиотек и компонентов

В проектах C++ часто требуется вызывать функции или обращаться к данным в двоичных файлах, таких как статические библиотеки (LIB-файлы), библиотеки DLL, компоненты среды выполнения Windows, компоненты COM или сборки .NET. В этих случаях необходимо настроить проект таким образом, чтобы он мог находить нужные двоичные файлы во время сборки. Конкретный способ сделать это зависит от типа вашего проекта, типа двоичного файла, а также от того, был ли этот двоичный файл собран в том же решении, что и ваш проект.

Использование скачанных библиотек с помощью vcpkg

Если вы хотите использовать скачанную библиотеку с помощью диспетчера пакетов vcpkg, то приведенные ниже инструкции можно пропустить. Дополнительные сведения см. в разделе:

  • vcpkg в проектах CMake
  • Установка и использование пакетов с CMake в Visual Studio
  • vcpkg в проектах MSBuild
  • Руководство. Установка и использование пакетов с MSBuild в Visual Studio

Использование статических библиотек

Если проект статической библиотеки был создан в том же решении:

  1. #include файл заголовка для статической библиотеки с помощью кавычки. В типовом решении путь начинается с ../ . При поиске вы можете использовать предложения технологии IntelliSense.
  2. Добавьте ссылку на проект статической библиотеки. Щелкните правой кнопкой мыши элемент Ссылки в узле проекта приложения в обозревателе решений и выберите Добавить ссылку.

Если статическая библиотека не входит в состав решения:

  1. Щелкните правой кнопкой мыши узел проекта приложения в обозревателе решений и выберите Свойства.
  2. На странице свойств Каталоги VC++ добавьте в раздел Пути библиотек путь к каталогу, который содержит LIB-файл. Затем добавьте в раздел Включаемые каталоги путь к файлам заголовков библиотеки.
  3. На странице свойств компоновщика > добавьте имя LIB-файла в дополнительные зависимости.

Библиотеки динамической компоновки

Если библиотека DLL была собрана в рамках того же решения, что и приложение, выполните те же действия, что и для статической библиотеки.

Если библиотека DLL не входит в состав решения приложения, вам потребуются DLL-файл, заголовки с прототипами для экспортируемых функций и классов, а также LIB-файл, содержащий необходимую для компоновки информацию.

  1. Скопируйте DLL-файл в папку выходных данных проекта или другую папку, которая задана в качестве стандартной для поиска библиотек DLL в Windows. Дополнительные сведения см. в разделе «Порядок поиска библиотеки динамических ссылок».
  2. Выполните шаги с 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 , если сборка, на которую указывает ссылка, имеет строгое имя. Сборка со строгим именем имеет уникальную версию.
  • Версия Отображает версию сборки, на которую указывает ссылка.

Как подключить библиотеку в visual studio c 2019

Использование библиотек

В прошлой статье, я рассказывал о том, как создаются библиотеки классов, написанные на C#. Прочитайте ту статью и соберите собственную библиотеку, если Вы не хотите ограничится только теорией в этой статье. В этой статье, я расскажу как использовать уже созданные библиотеки (DLL) в своих программах. И так, к делу!

Давайте создадим новый проект консольного приложения (как создавать проекты консольных приложений, я рассказывал в уроке № 3 базового курса).

А теперь, в окне Visual Studio, в обозревателе решений, ищем группу «Ссылки» и раскрываем её, как показано на рисунке ниже.

Список внешних ссылок нового проекта

Список внешних ссылок нового проекта

А теперь, вызовем контекстное меню на пункте «Ссылки», и выберем в нем «Добавить ссылку», как показано на рисунке ниже.

Добавление ссылки в проект

Добавление ссылки в проект

В появившемся окне, выбираем, в левой области выбираем пункт «Обзор» и в низу окна, нажимаем на кнопку «Обзор», как показано на рисунке ниже.

Загрузка внешней библиотеки

Загрузка внешней библиотеки

В появившемся окне, перейти в папку, в которое лежит библиотека (DLL) созданная в предыдущей статье (ссылку на которую, я давал ранее), выбрать эту библиотеку и нажать на кнопку «Добавить», как показано на рисунке ниже.

Выбор нужной библиотеки

Выбор нужной библиотеки

После чего, нажать на кнопку «OK» в предыдущем окне. В результате, список ссылок проекта, будет пополнен еще одной:

Пополненный список ссылок проекта

Пополненный список ссылок проекта

Теперь, мы можем использовать в налей программе класс «INIManager» из подключенной библиотеки. Но перед этим, мы должны выполнить еще одну операцию. Рассмотрим фрагмент кода подключенной библиотеки (он остался у нас после предыдущей статьи):

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; namespace FirstDLL < public class INIManager < //Конструктор, принимающий путь к INI-файлу public INIManager(string aPath)

Обратите внимание на выделенную строку, это объявление пространства имен (namespace), как бы некого контейнера, в котором находится класс «INIManager». И мы не сможем воспользоваться классом, пока не укажем системе что нужно взять во внимание это пространство имен. Т.е. нам нужно подключить пространство имен в нашем проекте. Для этого, добавим строку «using FirstDLL;» в конец блока директив using, который расположен в самом начале основного файла проекта. Подключение нужного пространства имен показано ниже (интересующая строка кода выделена):

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using FirstDLL;

Вот теперь, можно использовать класс из подключенной библиотеки, а сделать это можно написав в методе «Main» такой код:

//Создание объекта, для работы с файлом INIManager manager = new INIManager("C:\\my.ini"); //Получить значение по ключу name из секции main string name = manager.GetPrivateString("main", "name"); //Вывести полученное имя в консоль Console.WriteLine(name); //Записать значение по ключу age в секции main manager.WritePrivateString("main", "age", "21");

Данный код будет работать, при условии наличия файла «my.ini» на диске «C» нашего ПК. Вот такой вот пример работы со внешними библиотеками.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *