Задать вопрос
@Evgeny_13

Как подключит стороннюю ,dll в VS?

Доброе утро!

Написал свою небольшую .dll с несколькими функциями и подключил к своему проекту, всё работает хорошо. Но вот появилась необходимость подключить стороннюю dll(есть сама dll и её же файл lib).
Указал в References путь к папке с lib и путь к самой dll.

Вот код подключения:
1bafd8b6144840ab87851254397b4ad8.png

И как бы я не пытался получить ответ от компилятора, что библиотека подключена, ничего не выходит!

Подскажите, пожалуйста, как правильно подключать такие вещи, ведь это довольно частая практика??

Заранее огромное спасибо!)
  • Вопрос задан
  • 514 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
devspec
@devspec
Помогло? Отметь решением
Комментировать
@koronabora
Человек
Нужны: .h файл, путь которому содержится в Include Directory, .lib файл, путь к которому содержится в library directory, также этот .lib файл должен быть указан в настройках линковщика. Dll ку необходимо кинуть рядом с экзешником чтобы работало.
Ответ написан
@tomatho
Ваша pragma нужна если вы статически линкуетесь с библиотекой, то есть, dll после этого не понадобится. (кроме нестандартных случаев)
вместо pragma можно в свойствах проекта, во вкладке C++->Linker->Input->Additional Dependencies прописать путь к .lib

Важно: если библиотека линкуется статически (через .lib), то LoadLibrary() не нужен!
LoadLibrary нужен для динамической загрузки .dll
Однако если LoadLibrary() вызван на уже подгруженной .dll он всё же должен вернуть HMODULE.

И да, воспользуйтесь CFF Explorer, может подгружаемая вами .dll не может найти свои зависимости.
Для этого зайдите во вкладку Dependency Walker.
И как уже верно сказали: 32-битная версия программа не может работать с 64-битными библиотеками, вообще не может. Аналогично 64-битные программы не могут работать с 32-битными библиотеками. Вообще не могут.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы