Назад | Перейти на главную страницу

Почему 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 и пытаюсь запустить его, он сообщает мне, что я не могу запустить DLL, поэтому я знаю, что она есть. Одна небольшая сложность заключается в том, что библиотеки DLL были построены на VB5, но среда выполнения VB5 установлена ​​на сервере, так что это не должно быть проблемой.

Любые идеи?

Джим Б., вероятно, прав. Получить DependencyWalker и загрузите {nameoflibrary.dll} - он покажет вам, какая зависимая DLL отсутствует.

Возможно, отсутствует зависимый модуль. Вам нужно посмотреть код getlasterror, чтобы определить, почему модуль не был найден.