Я попытался использовать следующий код:
cd c:\windows\system32
regsvr32.exe dllname.ax
Но это не работает для меня. Как я могу зарегистрировать DLL-файл в Windows 7 с 64-битным процессором?
Ну, вы не указали, 32 или 64-битная это dll, и вы не указали сообщение об ошибке, но я догадываюсь, что это та же проблема, что описана в этой статье KB: Error Message When You Run Regsvr32.exe on 64-Bit Windows
Цитата из этой статьи:
Такое поведение возникает потому, что файл Regsvr32.exe в папке System32 является 64-битной версией. Когда вы запускаете Regsvr32 для регистрации DLL, вы используете 64-битную версию по умолчанию.
Решение из этой статьи:
Чтобы решить эту проблему, запустите Regsvr32.exe из %SystemRoot%\Syswow64 папки. Например, введите следующие команды для регистрации DLL:
cd \windows\syswow64
regsvr32 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
<БР>
Я знаю, что это выглядит неправильно, но это's пути это работает. См.:
http://support.microsoft.com/kb/249873 <БР> в <цитата> Цитата: "и обратите внимание на 64-разрядной версии операционной системы Windows, есть две версии Regsv32.exe файл:<БР> 64-разрядная версия - %системный_корневой_каталог%\System32\regsvr32 и.ехе.<БР> 32-разрядная версия является %systemroot%\SysWOW64, его команду regsvr32.ехе.<БР> и" </цитата>
Введите regsvr32 name.dll
в командной строке (выполняется в режиме повышения!) и нажмите "Enter." Обратите внимание, что name.dll
должно быть заменено именем DLL, которую вы хотите зарегистрировать. Например, если вы хотите зарегистрировать iexplore.dll, введите regsvr32 iexplore.dll
.
На системе x64, папка System32 и SysWOW64 для 64 бит для 32 бит (а не наоборот, как указано в другом ответе). ВАУ (в Windows) - это 32-битная подсистема, которая работает под 64-разрядная подсистема).
Это'ов бардак с точки зрения именования, и служит лишь для того чтобы запутать, но, что'ы так оно и есть.
Снова ...
SysWOW64, его составляет 32 бита, а не 64 бит.
System32-это 64-битная, а не 32 бит.
Есть regsrv32 в каждом из этих каталогов. Один является 64-разрядной, а другой 32 бит. Это же сделка с odbcad32 и соавт. (Если вы хотите увидеть 32-битную в ODBC драйверы, которая выиграла'т показать вверх с дефолтом odbcad32 в System32, которая является 64-разрядной.)
Откройте меню Пуск и введите cmd в поле поиска удерживайте Ctrl + Shift и нажмите Enter
Это запустит командную строку в режиме администратора.
Сейчас типа: regsvr32 и MyComobject.dll
Если библиотека DLL 32 бит:
если библиотека DLL 64 бит:
Наконец я нашел решение просто запустить cmd как администратор пишу
cd \windows\syswow64
потом пишите это
regsvr32 c:\filename.dll
Я надеюсь, что ответ поможет вам
Все здесь было не как неверный путь. Потом я вспомнил трюк из старого с Win95 дней. Откройте папку программы, где .DLL-библиотека находится, открыть C:/Windows/System32 прокрутите вниз, чтобы команду regsvr32 и перетащить DLL из папки программы на rgsrver32. Бум,готово.
Знание сообщения об ошибке было бы весьма ценным. Оно предназначено для предоставления информации, даже если оно не имеет никакого смысла для вас, оно имеет смысл для нас. Будучи вынужденным предположить, я бы сказал, что DLL является 32-битным фильтром DirectX. В таком случае это должно быть правильным действием:
cd c:\windows\syswow64
move ..\system32\dllname.ax .
regsvr32.exe dllname.ax
Это должно быть запущено в командной строке, чтобы UAC не смог остановить доступ к реестру, который'требуется. Задайте больше вопросов об этом на superuser.com
Я только что протестировал это очень простой способ и она прекрасно работает, но я пользуюсь встроенной учетной записи администратора, так что я не'т придется прыгать через обручи для повышенных привилегий.
Следующий пакетный файл избавляет пользователя от необходимости перемещать файлы в/из системных папок. Он также оставляет его в Windows, чтобы применить правильную версию команду regsvr32
.
в<у>По инструкции</П>:
-.dll файлы "или" -.файл AX
), которую вы хотите зарегистрировать, откройте новый текстовый файл и вставить в одну из подпрограмм ниже :Эхо начала перетащите %Н1 регистратора для 64-разрядных систем копия %1 C:\Windows\System32 команду regsvr32 " в%NX1 по себе" Эхо конец пакетного файла пауза </БР>
Эхо начала перетащите %Н1 регистратора для 32-разрядных систем копия %1 C:\Windows\SysWOW64 команду regsvr32 " в%NX1 по себе" Эхо конец пакетного файла пауза
Сохранить новый текстовый файл в пакетном режиме (-.файл bat
); затем просто перетащите ваш `-.dll файлы "или" -.файл топора по верхней части пакетного файла.
Если UAC не'т дать вам возможность запустить пакетный файл с правами администратора, вы можете вручную повышать уровень привилегий (инструкция для Windows 7):
Совместимость
;выполнять эту программу от имени администратора
;Что's это. Я выбрал "копировать" вместо перемещение
чтобы предотвратить отказ любого ОАК, связанные с последующей попыткой(ы). В случае успешной регистрации должно последовать удаление из исходной библиотеки (-.в DLL
и -.топор
файла).
Дон'т беспокоиться о копии, сделанные в системной папке (C:\Windows\System32
и C:\Windows\SysWOW64
) по предварительному проходит-они будут перезаписаны каждый раз, когда вы запустите пакетный файл.
Если ты нарвался не на того пакетным файлом, в этом случае вы, вероятно, хотите удалить данный экземпляр изготовлен в неправильной системе папку (C:\Windows\System32
и C:\Windows\SysWOW64
) перед выполнением соответствующего пакетного файла, ...или...
C:\Windows\System32
C:\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. Вход в систему как администратор делает **** не дают таких же прав, как при запуске программы от имени администратора.
Перейдите в меню Пуск - Все программы - аксессуары. Щелкните правой кнопкой мыши на командную строку и выберите "и запуск от имени администратора"и Теперь зарегистрироваться обычно ДЛЛ через : regsrvr32 xxx.dll
И при этом, если вы получаете код ошибки 0x80040201, попробуйте решение в для dllregisterserver не удалось код ошибки 0x80040201, но убедитесь, что вы открыть командную строку Запуск от имени администратора.
Часть путаницы в отношении regsvr32 и заключается в том, что на 64-битной Windows путь и имя не изменились, но теперь регистры 64-разрядные библиотеки DLL. 32-разрядную команду regsvr32 существует в SysWOW64, его, имя, которое, по-видимому, представляет 64-разрядные приложения. Однако в режиме WoW64 на имя относится к Windows на Windows 64 или более явного Windows 32-бит на 64-разрядную версию Windows. Когда вы думаете об этом таким образом, имя имеет смысл, даже если это сбивает с толку в этом контексте.
Я не могу найти первоисточник на блог MSDN, но на него ссылаются в статье Википедии http://en.wikipedia.org/wiki/WoW64
Вот как я решил эту проблему на машине с Win7 х64:
и"Метод cocreateinstance() не удалось Plkease проверить ваш реестр Идентификатор CLSID{F088EA74-2E87-11D3-B1F3-00C0F03C37D3} и убедитесь, что вы вошли в систему как администратор и"
Надеюсь, что это помогает !