Подтвердить что ты не робот

Ссылки DLL в Visual С++

У меня был опыт С++, но не MSVC.

То, что я пытаюсь сделать, это включить .dll из проекта с открытым исходным кодом в мой проект. Код доступен, и я его создал. У меня есть .dll, а также .lib, который, как я понимаю, требуется для проектов на С++.

Теперь, к сожалению, нет простого "Добавить ссылку", поместите мою .dll в каталог include и добавьте это в мое решение. Я редактировал страницы свойств проекта, дополнительные каталоги C/С++ Дополнительные каталоги, а также добавлял .lib в качестве дополнительной зависимости компоновщика. Я создал каталог include для dll и lib внутри моего дерева решений.

Моя проблема в том, что когда я пытаюсь включить файлы заголовков из документации, вывод VS выдает сообщения об ошибках. Теперь я понимаю, что я использую компиляцию dll/lib и что файлы .h не присутствуют в моем решении, так как я могу добавить соответствующие варианты? Я также использую инструментарий QT, который работает, но как я добавляю другой заголовок /dll из библиотеки с открытым исходным кодом, ускользает от меня.

Может кто-нибудь, пожалуйста, назовите меня в правильном направлении.

4b9b3361

Ответ 1

Вам нужно сделать несколько вещей, чтобы использовать библиотеку:

  • Убедитесь, что у вас есть *.lib и *.dll из библиотеки, которую вы хотите использовать. Если у вас нет *.lib, пропустите # 2

  • Поместите ссылку на *.lib в проекте. Щелкните правой кнопкой мыши имя проекта в обозревателе решений и выберите "Свойства конфигурации" → "Связи- > " "Enter" и поместите имя библиотеки в свойство "Дополнительные зависимости".

  • Вы должны убедиться, что VS может найти только что добавленный вами lib, поэтому вам нужно перейти в меню "Инструменты" и выбрать "Параметры"... Затем в разделе "Проекты и решения" выберите "Каталоги VС++", отредактируйте опцию "Каталог библиотек". Здесь вы можете установить каталог, содержащий новый lib, выбрав "Библиотечные файлы" в раскрывающемся списке "Показать каталоги для:". Просто добавьте путь к вашему файлу lib в списке каталогов. Если у вас нет lib, вы можете опустить это, но в то время как здесь вы также должны установить каталог, который содержит ваши файлы заголовков, а также в разделе "Включить файлы". Сделайте это так же, как вы добавили lib.

После этого вы должны быть добры, чтобы пойти и можете использовать свою библиотеку. Если у вас нет файла lib, вы все равно можете использовать dll, импортировав его самостоятельно. Во время запуска приложений вы можете явно загрузить DLL, вызвав LoadLibrary (см. http://msdn.microsoft.com/en-us/library/ms684175(VS.85).aspx для получения дополнительной информации)

Ура!

ИЗМЕНИТЬ

Не забудьте использовать #include < Foo.h > в отличие от #include "foo.h". Первый ищет путь включения. Последний использует локальные файлы проекта.

Ответ 2

Дополнительные каталоги содержат каталоги проекта. Обычно это каталог, в котором находится файл проекта, *.vcproj. Я предполагаю, что в вашем случае вам нужно добавить только "include" в ваши каталоги include и library.

Если вы хотите быть уверенным, что представляет собой ваш проект, вы можете проверить значение макроса $(ProjectDir). Для этого перейдите в "C/С++ → Дополнительные каталоги включения", нажмите кнопку "...", а во всплывающем диалоговом окне нажмите "Макросы → ".

Ответ 3

Вы упомянули добавление дополнительного каталога include (C/С++ | General) и дополнительной зависимости lib (Linker | Input), но вы также добавили дополнительную библиотечную директорию (Linker | General)?

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