Я пытаюсь загрузить DLL (через LoadLibraryA) из другой DLL. Это проблема:LoadLibraryA и относительный путь
c:\**EXE_DIR**\myExe.exe // this exe load the MY_DLL_N1.dll
c:\**DLLS_DIR**\MY_DLL_N1.dll // this dll load the MY_DLL_N2.dll
c:\**DLLS_DIR**\MY_DLL_N2.dll
- Исполняемый файл загрузить MY_DLL_N1.dll ... хорошо.
- MY_DLL_N1.dll попытаться загрузить (под кодом) MY_DLL_N2.dll (тот же каталог) ... и вот моя проблема!
int LoadMyDLL()
{
// ...
// same path of the MY_DLL_N1.dll ... right?
handle = LoadLibraryA ("MY_DLL_N2.dll");
// ...
}
это все .... любая помощь приветствуется!
Вы запрашиваете DLL Hell, ожидая, что Windows найдет для вас нужную DLL. И ты понял. Windows не хочет решительно решить эту проблему. Хранение DLL в том же каталоге, что и EXE, всегда должно быть первым выбором. Умышленное помещение их в другое место, чтобы заставить другую программу использовать одни и те же библиотеки DLL, - худший вид DLL Hell. Вы обновите DLL, чтобы исправить ошибку в одной программе. И вызвать ошибку в другой программе. Не делай этого. –