Я устанавливаю пользовательское приложение на новый Windows 2003 Server. Необходимо добавить и зарегистрировать пару библиотек DLL, и я скопировал их на сервер в папку C: \ WINDOWS \ System32 - именно там они всегда были, когда у нас было приложение, работающее в Windows NT и 2000 ,
Тем не менее, когда я пытаюсь зарегистрировать их с помощью:
regsvr32 c: \ windows \ system32 \ nameoflibrary.dll
Это возвращает:
LoadLibrary("c:\windows\system32\nameoflibrary.dll") failed -
The specified module could not be found.
DLL, однако, прямо там. Я вижу его. Если я копирую путь в Windows Explorer и пытаюсь его запустить, он говорит мне, что я не могу запустить DLL, поэтому я знаю, что она там есть. Небольшое осложнение заключается в том, что библиотеки DLL были встроены в VB5, но среда выполнения VB5 установлена на сервере, поэтому это не должно быть проблемой.
Любые идеи?
Ответы:
Возможно, отсутствует зависимый модуль. Вам нужно взглянуть на код getlasterror, чтобы определить, почему модуль не был найден.
источник
Джим Б., наверное, прав. Получите DependencyWalker и загрузите {nameoflibrary.dll} - он покажет вам, какая зависимая DLL отсутствует.
источник
dumpbin /dependents <file.exe/dll>