@beduin01

Как изменить путь где приложение ищет dll?

Есть приложение, которое использует библиотеку libpq.dll. Приложение компилируется нормально, но при запуске требует библиотеку libintl.dll (как понимаю. libpq.dll на нее завязан). Приложение ее ищет в текущей папке и если этой библиотеки нет, то падает.

Я хочу все библиотеки переместить в папку /libs вопрос. Как мне сделать так, чтобы libpq.dll искал библиотеку libintl.dll не в папке текущего приложения, а в папке /libs ?
  • Вопрос задан
  • 5584 просмотра
Пригласить эксперта
Ответы на вопрос 3
Попробуйте зарегистрировать библиотеку в системе при помощи regsvr32
support.microsoft.com/kb/249873/ru

Если стоит x64 система, то можете столкнуться с такой проблемой
support.microsoft.com/kb/282747/ru
Ответ написан
Комментировать
gbg
@gbg
Любые ответы на любые вопросы
Нужно либо добавить путь к папке libs в PATH.
Либо добавить путь к библиотеке в ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs.

MSDN
Ответ написан
Комментировать
maaGames
@maaGames
Погроммирую программы
Используй отложенную загрузку библиотеки и, первым делом, добавляй в пути поиска путь к твоей папке. Это нужно делать до обращения к любой из dll. Подход аналогичен использованию LoadLibrary, только тебе не нужно ни подгружать библиотеку, ни функции экспортировать.

Прям первой строчкой в main (или где у тебя точка входа) вызови ::SetDllDirectory( путь к папке с dll )
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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