Почему бы 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 отсутствует.

Другие вопросы по тегам