Почему бы REGSVR32 не найти DLL, которая явно там?
Я устанавливаю пользовательское приложение на новый 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 установлена на сервере, поэтому это не должно быть проблемой.
Есть идеи?
2 ответа
Возможно, отсутствует зависимый модуль. Вам нужно взглянуть на код getlasterror, чтобы определить, почему модуль не был найден.
Джим Б., наверное, прав. Получите DependencyWalker и загрузите {nameoflibrary.dll} - он покажет вам, какая зависимая DLL отсутствует.