Проблемы с использованием файлов в глобальном масштабе - PullRequest
0 голосов
/ 13 мая 2010

Недавно у меня возникли проблемы, когда я обнаружил, что Vista ограничивает то, что может быть установлено в каталог system32, хотя я и являюсь администратором этого компьютера. Это не позволит мне регистрировать dll-файлы, поэтому я могу использовать такие программы, как wget, например, как используются программы "nslookup" и т. Д. Дает мне эту ошибку.

Regsvr32: модуль "C: \ Windows \ System32 \ libeay32.dll" не удалось загрузить.
убедитесь, что двоичный файл хранится по указанному пути, или отладьте его, чтобы проверить наличие проблем с двоичными или зависимыми файлами .DLL.

Указанный модуль не найден.

Перемещение необходимых файлов DLL в system32 выдает запрос на подтверждение прав администратора, необходимых для перемещения этих файлов, поэтому я даю разрешение, копирую файлы в system32 и запускаю wget для подтверждения. Здесь он говорит, что не может найти DLL, необходимую для запуска, и при использовании regsvr32 он говорит, что не может найти точку входа, поэтому он не загружает DLL, спрашивая меня, является ли она допустимым файлом DLL или OCX.

Если я оставлю библиотеки DLL, поставляемые с wget, в той же папке, что и wget вне system32, они будут работать, добавляя их в system32 вместе с exe-файлом, он не будет работать, говоря, что не может прочитать эти dll-файлы.

Есть ли способ обойти это или мне нужно обновить систему до Windows 7, чтобы обойти эти проблемы / ограничения?

1 Ответ

1 голос
/ 13 мая 2010
  • Попробуйте Dependency Walker на wget.exe и посмотрите, что это даст вам больше информации о проблеме
  • Может ли быть проблема с правами доступа при копировании файла в system32? Убедитесь, что у вашего пользователя есть права на чтение / выполнение
  • Поместите его (и wget.exe) в другую папку, которая также находится в% path%. c: \ windows (Ugly) или пользовательская папка, например c: \ tools, которую вы добавляете в системные переменные.
  • Используйте версию wget , которая не зависит от этой библиотеки

Примечание: regsvr32 не требуется для DLL в system32, оно работает только тогда, когда DLL экспортирует функцию DllRegisterServer

...