В документах для LoadLibrary четко указано, что:
Если в строке указан полный путь, функция ищет только
путь к модулю.
Тем не менее, они не упоминают поддержку замены переменных среды. Я серьезно сомневаюсь, что они поддерживают подстановку переменных среды: это функция оболочки, а не API ядра.
Кстати, это означает, что LoadLibrary()
будет рассматривать %windir%\blah.dll
как относительный путь, поскольку он не начинается с буквы диска или пути UNC. Следовательно, он будет просматривать всю серию каталогов, ища подкаталог с именем %windir%
, который вряд ли найдется!
Я быстро его проверил: это подтверждает мое мнение. Ошибка = 126: Указанный модуль не найден .