Как мне зарегистрировать файл DLL в Windows 7 64-bit? - PullRequest
99 голосов
/ 04 февраля 2011

Я пытался использовать следующий код:

cd c:\windows\system32
regsvr32.exe dllname.ax

Но это не работает для меня.Как я могу зарегистрировать файл DLL в Windows 7 с 64-разрядным процессором?

Ответы [ 15 ]

194 голосов
/ 03 февраля 2011

Ну, вы не указываете, является ли это 32- или 64-битной DLL, и вы не включаете сообщение об ошибке, но я предполагаю, что это та же проблема, как описано в этой статье базы знаний: Когда вы запускаете Regsvr32.exe в 64-битной Windows

Цитата из этой статьи:

Это происходит потому, что файл Regsvr32.exe в System32 папка является 64-битной версией. Когда вы запускаете Regsvr32 для регистрации DLL, вы используете 64-битную версию по умолчанию.

Решение из этой статьи:

Чтобы решить эту проблему, запустите Regsvr32.exe из% SystemRoot% \ Syswow64 папка. Например, введите следующие команды для регистрации DLL: cd \windows\syswow64 regsvr32 c:\filename.dll

101 голосов
/ 15 ноября 2012

Если DLL - 32 бит:

Скопируйте DLL в C: \ Windows \ SysWoW64 \
В командной строке с повышенными правами : %windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll

, если DLL - 64 бит:

Скопируйте DLL в C: \ Windows \ System32 \
В командной строке с повышенными правами : %windir%\System32\regsvr32.exe %windir%\System32\namedll.dll

Я знаю, что это кажется неправильным, но это так. Смотрите:

http://support.microsoft.com/kb/249873
Цитата: «Примечание. В 64-разрядной версии операционной системы Windows существует две версии файла Regsv32.exe:
64-разрядная версия -% systemroot% \ System32 \ regsvr32.exe.
32-разрядная версия -% systemroot% \ SysWoW64 \ regsvr32.exe.
"

67 голосов
/ 04 февраля 2011

Введите regsvr32 name.dll в командной строке (выполняется в режиме повышенных прав!) И нажмите «Ввод». Обратите внимание, что name.dll следует заменить именем библиотеки DLL, которую вы хотите зарегистрировать. Например, если вы хотите зарегистрировать iexplore.dll, введите regsvr32 iexplore.dll.

29 голосов
/ 26 октября 2012

В системе x64 system32 для 64-битных, а syswow64 для 32-битных (не наоборот, как указано в другом ответе).WOW (Windows on Windows) - это 32-разрядная подсистема, которая работает под управлением 64-разрядной подсистемы.

Это путаница в терминах именования, и она только вводит в заблуждение, но это так.

Опять же ...

syswow64 32-битный, НЕ 64-битный.

system32 64-битный, НЕ 32-битный.

В каждом из них есть regsrv32каталоги.Один 64-битный, а другой 32-битный.То же самое относится и к odbcad32 и соавт.(Если вы хотите увидеть 32-битные ODBC драйверы, которые не отображаются с odbcad32 по умолчанию в system32, который является 64-битным.)

8 голосов
/ 31 октября 2012

Откройте меню «Пуск» и введите cmd в поле поиска. Удерживайте Ctrl + Shift и нажмите Enter

. При этом запускается командная строка в режиме администратора.

Теперь введите: regsvr32 MyComobject.dll

6 голосов
/ 14 августа 2012

Наконец я нашел решение: просто запустите CMD от имени администратора и напишите

cd \windows\syswow64

тогда напишите это

regsvr32 c:\filename.dll

Я надеюсь, что ответ поможет вам

6 голосов
/ 07 июня 2012

Если библиотека DLL 32-разрядная:

  1. Скопируйте DLL в C: \ Windows \ SysWoW64 \
  2. В режиме повышенных полномочий:% windir% \ SysWoW64 \ regsvr32.exe% windir% \ SysWoW64 \ namedll.dll

, если DLL является 64-битной:

  1. Скопируйте DLL в C: \ Windows \ System32 \
  2. В режиме повышенных полномочий:% windir% \ System32 \ regsvr32.exe% windir% \ System32 \ namedll.dll
5 голосов
/ 04 февраля 2014

Все здесь терпело неудачу как неправильный путь.Тогда я вспомнил трюк со старых дней Win95.Откройте папку программы, в которой находится .dll, откройте C: / Windows / System32, прокрутите вниз до regsvr32 и перетащите dll из папки программы на rgsrver32.Boom, сделано.

3 голосов
/ 06 марта 2015

Вам нужно запустить cmd.exe в c:\windows\system32\ by administrator

Команда: Для отмены регистрации * .dll файлы

regsvr32.exe /u C:\folder\folder\name.dll

Для регистрации * .dll файлы

regsvr32.exe C:\folder\folder\name.dll
3 голосов
/ 23 октября 2013

И при этом, если вы получаете код ошибки 0x80040201, попробуйте решение в Ошибка DllRegisterServer с кодом ошибки 0x80040201 , но убедитесь, что вы открыли командную строку как Запуск от имени администратора .

...