Подтвердить что ты не робот

Зарегистрировать 32-битную COM-DLL до 64 бит Windows 7

У меня есть 32-битная COM-компонента DLL, и эта DLL написана в Delphi. Это Win32 DLL. Я хочу использовать эту DLL в проекте Visual С# на платформе .NET.

Я не могу добавить ссылку на эту DLL в проекте. Я пытаюсь зарегистрировать его в командной строке как администратор в Windows 7 64 бит, но я получаю эту ошибку:

Проверьте, совместим ли модуль с x86 (32-разрядной) или x64 (64-разрядной) версией regsvr32.exe.

Сначала я поместил DLL файл в папку windows/system32. Затем я открываю командную строку как администратор. Я пишу regsvr32 huginalpha.dll и выполняю эту команду. Но я получаю ошибку. что я могу сделать?

4b9b3361

Ответ 1

Вероятно, вы пытаетесь зарегистрировать 32-битную библиотеку с 64-разрядной версией regsvr32. См. статью в KB - вам нужно запустить regsvr32 из Windows\SysWOW64 для 32-битных библиотек.

Ответ 2

Для 32-разрядных DLLS в 64-разрядных платформах Windows:

  • Скопировать any.dll в c:\windows\sysWOW64\
  • Откройте приглашение CMD AS ADMINISTRATOR (очень важно)

В окне CMD:

  • CD c:\windows\sysWOW64\
  • regsvr32 whatever.dll

Затем вы будете выполнять 32-битный regsvr (c:\windows\sysWOW64\regsvr.exe) в 32-битной dll

Ответ 3

Я верю, теперь все изменилось. В ящике Win 2008 R2 я смог зарегистрировать 32-битную dll с 64-битным regsvr32, поскольку 64-битная версия может определить целевую битту и создать новую 32-разрядную regsvr32 из% SYSWOW% папки.

Обратитесь: Регистрация 32-разрядной библиотеки DLL с 64-битным regsvr32

Ответ 4

http://onerkaya.blogspot.com/2013/03/register-com-dll-on-windows-64-bit.html

Извлечение COM-класса factory для компонента с CLSID {...} не удалось из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

если вы попробуете это;

c:\windows\system32\regsvr32.exe <filename> .dll

вы все равно можете воспользоваться этим исключением. поэтому расширенные настройки IIS-пула, Включить 32-битное приложение: true;)

Ответ 5

Чтобы зарегистрировать comm.dll или .ocx в 32-разрядной версии Windows 7, выполните следующие действия:

Скопировать .dll или .ocx в c:\windows\system32 Введите cmd в меню Run, он будет искать cmd.exe, щелкните правой кнопкой мыши и выберите Run as Administrator

На экране появится сообщение c:\windows\system32

Введите

regsvr32 ocxname.ocx для регистрации .ocx

или

введите regsvr32 dllname.dll для регистрации .dll

Ответ 6

поместите dll в каталог system32 или syswow32 и используйте соответствующий regsvr32 для его регистрации. что даже если он выдал ошибку регистрации, я перезагрузил свой WIN 7 64, и мое приложение vb загрузило dll просто отлично!

Ответ 7

Если проблема не решена, при использовании версии regsvr32 SysWoW64 убедитесь, что все зависимости библиотеки имеют одинаковые архетинты. Например, когда

regsvr32 lib_x86.dll не удается зарегистрировать библиотеку и %SystemRoot%\SysWow64\regsvr32 lib_x86 также не работает, попробуйте загрузить lib_x86 в приложение Dependency Walker, чтобы просмотреть весь список зависимостей. Если у какого-либо элемента есть 64-разрядная археометрия, вот почему, почему regsvr32 не загружает 32-разрядную библиотеку.

Ответ 8

Я получал сообщение об ошибке "Модуль может совместим с этой версией окон" для обеих версий RegSvr32 (32-разрядная и 64-разрядная версии). Я пытался зарегистрировать DLL, созданную для XP (32 бит) в Server 2008 R2 (x64), и ни одна из резолюций Regsr32 не работала для меня. Однако регистрация сборки в соответствующей .Net работала идеально для меня. C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe

Ответ 9

Ниже ссылки сохранен день

https://msdn.microsoft.com/en-us/library/ms229076(VS.80).aspx

используйте соответствующие RegSvcs, как указано в приведенной выше ссылке

C:\Windows\Microsoft. NET\Framework\v4.0.30319\RegSvcs.exe....\Shared\Your.dll/tlb:Your.tlb

Ответ 10

Попробуйте запустить его в Framework64.

Пример:

  • 32 бит

    C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe D:\DemoIconOverlaySln\Demo\bin\Debug\HandleOverlayWarning\AsmOverlayIconWarning.dll /codebase 
    
  • 64 бит

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\RegAsm.exe D:\DemoIconOverlaySln\Demo\bin\Debug\HandleOverlayWarning\AsmOverlayIconWarning.dll /codebase