Registra DLL COM a 32 bit su Windows 7 a 64 bit




windows-7 (7)

Ho una DLL componente COM a 32 bit e questa DLL è scritta in Delphi. È una DLL Win32. Voglio utilizzare questa DLL nel mio progetto Visual C # su piattaforma .NET.

Non riesco a aggiungere riferimenti a questa DLL nel progetto. Provo a registrarlo in Prompt dei comandi come amministratore in Windows 7 a 64 bit, ma ottengo questo errore:

Verificare se il modulo è compatibile con una versione x86 (32 bit) o ​​x64 (64 bit) di regsvr32.exe.

Per prima cosa metto il file DLL nella cartella windows / system32. Quindi apro il prompt dei comandi come amministratore. Scrivo regsvr32 huginalpha.dll ed regsvr32 huginalpha.dll questo comando. Ma ottengo l'errore. cosa posso fare?


È probabile che si tenti di registrare una libreria a 32 bit con la versione 64-bit di regsvr32. Vedi questo articolo della Knowledge Base - devi eseguire regsvr32 da windows \ SysWOW64 per le librerie a 32 bit.


Credo, le cose sono cambiate ora. In My Win 2008 R2 Box, sono stato in grado di registrare una dll a 32 bit con regsvr32 a 64 bit poiché la versione a 64 bit può rilevare il bitness di destinazione e generare un nuovo regsvr32 a 32 bit dalla cartella% SYSWOW%.

Fare riferimento a: Registrazione di una DLL a 32 bit con regsvr32 a 64 bit


Per registrare un comando .dll o .ocx su Windows 7 a 32 bit, effettuare le seguenti operazioni:

Copia .dll o .ocx in c:\windows\system32 Digita cmd nel menu Esegui, cercherà cmd.exe, fai clic con il pulsante destro del mouse e fai clic su Run as Administrator

Mostrerà un prompt in c:\windows\system32

genere

regsvr32 ocxname.ocx per registrare regsvr32 ocxname.ocx

o

digita regsvr32 dllname.dll per registrarsi .dll


Prova ad eseguirlo su Framework64.

Esempio:

  • 32 bit

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

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


Stavo ricevendo l'errore "Il modulo potrebbe essere compatibile con questa versione di Windows" per entrambe le versioni di RegSvr32 (32 bit e 64 bit). Stavo cercando di registrare una DLL creata per XP (32 bit) in Server 2008 R2 (x64) e nessuna delle risoluzioni Regsr32 funzionava per me. Tuttavia, la registrazione dell'assembly nel file .Net appropriato ha funzionato perfettamente per me. C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ RegAsm.exe


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

Il recupero della classe di produzione COM per componente con CLSID {...} non è riuscito a causa del seguente errore: 80040154 Classe non registrata (Eccezione da HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

se provi questo;

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

puoi ancora prendere questa eccezione. quindi Impostazioni avanzate di IIS-pool, Abilita applicazione a 32 bit: true;)