Я попытался использовать следующий код:
cd c:\windows\system32
regsvr32.exe dllname.ax
Но это не работает для меня. Как я могу зарегистрировать DLL файл в Windows 7 с 64-разрядным процессором?
Я попытался использовать следующий код:
cd c:\windows\system32
regsvr32.exe dllname.ax
Но это не работает для меня. Как я могу зарегистрировать DLL файл в Windows 7 с 64-разрядным процессором?
Введите regsvr32 name.dll в командную строку (выполняется в режиме повышенной скорости!) и нажмите "Enter". Обратите внимание, что name.dll следует заменить на имя DLL, которое вы хотите зарегистрировать. Например, если вы хотите зарегистрировать iexplore.dll, введите regsvr32 iexplore.dll.
Ну, вы не укажете, является ли это 32 или 64-разрядной dll, и вы не включаете сообщение об ошибке, но я догадаюсь, что это та же проблема, что описана в этой статье в KB: Сообщение об ошибке при запуске Regsvr32.exe в 64-битной Windows
Цитата из этой статьи:
Это происходит потому, что файл Regsvr32.exe в System32 папка - это 64-разрядная версия. Когда вы запустите Regsvr32 для регистрации DLL, вы используете 64-разрядную версию по умолчанию.
Решение из этой статьи:
Чтобы устранить эту проблему, запустите Regsvr32.exe из% SystemRoot%\Syswow64 папка. Например, введите следующие команды для регистрации DLL:
cd \windows\syswow64regsvr32 c:\filename.dll
Если 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.
"
В системе x64 system32 для 64 бит, а syswow64 - для 32 бит (а не наоборот, как указано в другом ответе). WOW (Windows в Windows) - это 32-разрядная подсистема, работающая под 64-разрядной подсистемой).
Это беспорядок в именах терминов и служит только для того, чтобы запутать, но так, как есть.
Снова...
syswow64 - 32 бит, а не 64 бит.
system32 - 64 бит, а не 32 бит.
В каждом из этих каталогов есть regsrv32. Один из них - 64 бит, а другой - 32 бит. Это та же самая сделка с odbcad32 и et al. (Если вы хотите увидеть 32-разрядные драйверы ODBC, которые не будут отображаться с по умолчанию odbcad32 в system32, который является 64-разрядным.)
Откройте меню "Пуск" и введите cmd в поле поиска. Удерживайте Ctrl + Shift и нажмите "Enter"
Выполняется командная строка в режиме администратора.
Теперь введите: regsvr32 MyComobject.dll
Если DLL 32 бит:
если DLL 64 бит:
Все здесь провалилось как неправильный путь. Затем я вспомнил трюк из старых дней Win95. Откройте папку программы, в которой находится .dll, откройте C:/Windows/System32, прокрутите страницу до regsvr32 и перетащите DLL из папки программы на rgsrver32. Boom, сделано.
Наконец, я нашел решение просто запустить CMD в качестве администратора, а затем написать
cd \windows\syswow64
тогда напишите это
regsvr32 c:\filename.dll
Я надеюсь, что ответ поможет вам
Знание сообщения об ошибке будет весьма ценным. Он предназначен для предоставления информации, хотя для вас это не имеет никакого смысла. Будучи вынужденным догадаться, я бы сказал, что DLL - это 32-разрядный DirectX-фильтр. В этом случае это должен быть правильный ход действий:
cd c:\windows\syswow64
move ..\system32\dllname.ax .
regsvr32.exe dllname.ax
Это должно выполняться в командной строке с повышенными правами, чтобы UAC не мог остановить требуемый реестр. Задайте больше вопросов об этом на superuser.com
Я просто протестировал этот чрезвычайно простой метод, и он отлично работает, но я использую встроенную учетную запись администратора, поэтому мне не нужно переходить через обручи для повышенных привилегий.
Следующий командный файл избавляет пользователя от необходимости переместить файлы в/из системных папок. Он также оставляет его в Windows для применения правильной версии Regsvr32.
Инструкция:
В папке, содержащей файл библиотеки (-.dll или -.ax), который вы хотите зарегистрировать, откройте новый текстовый файл и вставьте в ОДИН из подпрограмм ниже:
echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 64-BIT SYSTEMS
copy %1 C:\Windows\System32
regsvr32 "%nx1"
echo END BATCH FILE
pause
echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 32-BIT SYSTEMS
copy %1 C:\Windows\SysWOW64
regsvr32 "%nx1"
echo END BATCH FILE
pause
Сохраните новый текстовый файл в виде пакета (-.bat); затем просто перетащите ваш файл -.dll или -.ax поверх командного файла.
Если UAC не дает вам возможности запуска командного файла в качестве администратора, вам может потребоваться вручную повысить привилегии (инструкции для Windows 7):
Create shortcut;Properties;Compatibility;Run this program as administrator;-.dll или -.ax файл поверх нового ярлыка вместо командного файла. Что он. Вместо MOVE я выбрал COPY, чтобы предотвратить отказ от последующих попыток (ов), связанных с UAC. За успешной регистрацией следует удалить исходный файл библиотеки (-.dll или -.ax).
Не волнуйтесь о копиях, сделанных в системную папку (C:\Windows\System32 или C:\Windows\SysWOW64) предыдущими проходами - они будут перезаписаны каждый раз, когда вы запускаете командный файл.
Если вы не запустили неправильный командный файл, в этом случае вы, вероятно, захотите удалить копию, сделанную в неправильную системную папку (C:\Windows\System32 или C:\Windows\SysWOW64), перед запуском соответствующего пакетного файла,... или...
Help Windows выбирает нужный файл библиотеки для регистрации, полностью определяя местоположение своего каталога.
C:\Windows\System32C:\Windows\SysWOW64%nx1
regsvr32 "C:\Windows\System32\%nx1"regsvr32 "C:\Windows\SysWOW64\%nx1"
%nx1 от пути к системной папкеЗапустите этот пакетный файл дробовика, который будет (по порядку):
C:\Windows\System32;C:\Windows\System32;C:\Windows\SystemWOW64В Windows 7 есть разница. Вход в систему как администратор не дает те же права, что и при запуске программы в качестве администратора.
Перейдите в меню "Пуск" - "Все программы" - "Акселеры". Щелкните правой кнопкой мыши в окне Command и выберите "Запуск от имени администратора". Теперь зарегистрируйте dll обычно через: regsrvr32 xxx.dll
И при этом, если вы получите код ошибки 0x80040201, попробуйте решение в сбой кода DllRegisterServer с кодом ошибки 0x80040201, но убедитесь, вы открываете командную строку в качестве "Запуск от имени администратора".
Вам нужно запустить cmd.exe в c:\windows\system32\ by administrator
Команды: Для отписки *.dll файлов
regsvr32.exe /u C:\folder\folder\name.dll
Для регистрации *.dll файлов
regsvr32.exe C:\folder\folder\name.dll
Часть путаницы в отношении regsvr32 заключается в том, что в 64-битных окнах имя и путь не изменились, но теперь он регистрирует 64-разрядные библиотеки DLL. 32-разрядный regsvr32 существует в SysWOW64, который представляет собой 64-битные приложения. Однако WOW64 в названии относится к Windows на Windows 64, или более эксклюзионной 32-разрядной Windows в Windows 64-бит. Когда вы думаете об этом, это имеет смысл, даже если в этом контексте оно запутывается.
Я не могу найти свой исходный источник в блоге MSDN, но на это ссылается в этой статье Википедии http://en.wikipedia.org/wiki/WoW64
Вот как я исправил эту проблему на машине Win7 x64:
"Ошибка CoCreateInstance() Plkease проверить записи в реестре CLSID {F088EA74-2E87-11D3-B1F3-00C0F03C37D3} и убедитесь, что вы вошли в систему как администратор "
Надеюсь, это поможет!