Visual Studio 2010 — включая библиотеку и DLL в проект C ++

У меня есть сторонняя библиотека (скажем, tp.lib) и сторонняя dll (скажем, tp.dll), которую мне нужно использовать в моем проекте C ++ (мой проект создает dll, давайте назовем его my.dll).

Я включил библиотеку с комментарием #pragma (lib, «libraryname») в заголовочный файл
а также включил путь к файлу библиотеки в configurationproperties-> linker-> дополнительные каталоги библиотек в моем проекте C ++ Visual Studio.

Код компилируется и ссылки в порядке. но не в состоянии выполнить. Когда я использовал зависит от проверки, если я что-то упустил, я заметил, что tp.dll не найден. Файл tp.dll находится в той же папке библиотеки, где находится файл tp.lib.

Что я должен сделать, чтобы tp.dll был включен в my.dll?

0

Решение

Путь поиска во время выполнения не включает в себя папку, в которую вы помещаете библиотеку lib, поэтому размещение DLL вместе с библиотекой не позволяет ОС найти ее во время выполнения. Вы можете добавить это к пути или переместить DLL. список приоритетов поиска находится на MSDN.

0

Другие решения

У DLL другой путь поиска. Цитата ниже из документы:

При неявном и явном связывании Windows сначала ищет «известные библиотеки DLL», такие как Kernel32.dll и User32.dll. Затем Windows выполняет поиск библиотек DLL в следующей последовательности:

  1. Каталог, в котором находится исполняемый модуль для текущего процесса.

  2. Текущий каталог.

  3. Системный каталог Windows. Функция GetSystemDirectory извлекает путь к этому каталогу.

  4. Каталог Windows. Функция GetWindowsDirectory извлекает путь к этому каталогу.

  5. Каталоги, перечисленные в переменной среды PATH.

Заметка
Переменная среды LIBPATH не используется.

1

Вы не можете «включить DLL в другую DLL». Вам нужно либо развернуть их вместе, либо поместить dll для зависимостей в место, где Windows найдет это.

0
По вопросам рекламы [email protected]