Поместите DLL в другой каталог

0

Я хочу разместить библиотеки DLL в другую папку, а затем exe файл, потому что это огромный беспорядок. (Я использую SDL2, но это не относится к этому, я думаю)

Изменение: Как импортировать DLL из другого каталога? (Я импортирую их только заготавливаемые заголовки)

  • 1
    Я не вижу здесь вопроса.
  • 0
    Пожалуйста, задайте вопрос.
Показать ещё 7 комментариев
Теги:
dll

2 ответа

3
Лучший ответ

Для этого вам нужно указать свои библиотеки как /DELAYLOAD и установить соответствующие каталоги DLL во время запуска приложения, вызывая AddDllDirectory (Windows 8 и выше) или SetDllDirectory (Windows XP SP1 и выше).

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

  • 1
    Есть ли минусы для задержки загрузки?
  • 1
    @Ken Ошибки об отложенном разрешении импорта появляются позже (при первой попытке выполнить неудовлетворенный импорт). Для надежного решения вам необходимо реализовать соответствующую обработку ошибок . Существуют также некоторые ограничения DLL-библиотеки с отложенной загрузкой .
Показать ещё 3 комментария
-1

Переменная среды PATH должна делать трюк

  • 2
    Это глобальное решение локальной проблемы
  • 1
    @DavidHeffernan - Сделать его локальным - есть командный файл ?!
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню