Я новичок в «скрытых/темных мест» в C++ и мне было интересно, как загрузить DLL-файл из другой директории или поддиректории внутри одной, где мой текущий исполняемый работаетC++ Загрузить DLL из подкаталога?
Ex :
./MyAppDirectory
/MyApp.exe
/SomeDLL.dll
/AnotherDLL.dll
/SubDirectory
/SomeDLL2.dll
/AnotherDLL2.dll
/YetAnotherDLL.dll
/...
Так «MyApp.exe» автоматически загружает «SomeDLL.dll» и «AnotherDLL.dll» от его корневой папки «MyAppDirectory», однако я также хочу, чтобы иметь возможность загружать «SomeDLL2.dll», " AnotherDLL2.dll "," YetAnotherDLL.dll "и т. Д. Из папки" SubDirectory "внутри папки" MyAppDirectory ".
Я делал некоторые поиски и от того, что я нашел только решения:
- 1) Изменение рабочего каталога исполняемого файла.
- 2) Поместите DLL-файлы в корень Windows.
- 3) Измените переменную среды PATH.
Но все они имеют некоторые плохие стороны (не стоит упоминать здесь), и это не то, что мне действительно нужно. Еще одно решение - «Конкретные пути приложения!». который включает работу с реестром Windows и кажется немного лучше, чем те, о которых говорилось ранее.
Однако мне нужно иметь возможность сделать это внутри «MyApp.exe» с помощью C++ без использования внешних методов.
Я использую MinGW 4.7.2, а моя IDE - код :: Blocks 12.11 также моя ОС - Windows XP SP3 Pro x86.
Любая ссылка, учебник, документация, пример и т.д. принимается и спасибо за ваше время: D
Все три из ваших подробных списков - плохие идеи. Не делайте этого. –
Возможный дубликат [Изменение пути поиска DLL для статической связанной DLL] (http://stackoverflow.com/questions/3832290/altering-dll-search-path-for-static-linked-dll) – MSalters