Enregistrer 32 bit COM DLL à 64 bit Windows 7

j'ai une DLL COM 32 bits et cette DLL est écrite en Delphi. C'est une DLL de Win32. Je veux utiliser cette DLL dans mon projet Visual C# sur la plate-forme.net.

Je ne peux pas ajouter de référence à cette DLL dans le projet. J'ai essayer de l'inscrire dans l'Invite de Commande en tant qu'Administrateur sous Windows 7 64 bits, mais j'ai cette erreur:

vérifiez si le module est compatible avec une version x86 (32 bits) ou x64 (64 bits) de regsvr32.EXE.

D'abord j'ai mis le fichier DLL vers le dossier windows / system32. Puis j'ouvre L'invite de commande en tant qu'administrateur. J'écris regsvr32 huginalpha.dll et exécutez cette commande. Mais je reçois l'erreur. que puis-je faire?

29
demandé sur bluish 2010-08-09 16:11:35

10 réponses

le problème est probablement que vous essayez d'enregistrer une bibliothèque 32 bits avec une version 64 bits de regsvr32. voir cet article de KB - vous devez exécuter regsvr32 à partir de windows\SysWOW64 pour les bibliothèques 32 bits.

52
répondu sharptooth 2010-08-09 13:24:08

Pour la version 32 bits DLL dans Windows 64 bits plates-formes:

  1. Copier quoi que ce soit.dllc:\windows\sysWOW64\
  2. ouvrez une invite CMD en tant qu'administrateur (très important)

dans la fenêtre CMD:

  1. CD c:\windows\sysWOW64\
  2. regsvr32 whatever.dll

vous exécuterez alors le regsvr 32 bits (c:\windows\sysWOW64\regsvr.exe) sur une dll 32 bit

28
répondu RichC 2012-11-28 18:27:41

je crois que les choses ont changé maintenant. Sur Mon Win 2008 R2 Box, j'ai pu enregistrer une dll 32 bits avec une regsvr32 64 bits car la version 64 bits peut détecter le bitness cible et lancer une nouvelle regsvr32 32 bits à partir du dossier %SYSWOW%.

Voir: enregistrer une DLL 32 bits avec regsvr32 64 bits

3
répondu Abhijit 2017-05-23 11:47:26

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

extraire l'usine de classe COM pour le composant avec CLSID {...} a échoué en raison de l'erreur suivante: classe 80040154 non enregistrée (Exception de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

si vous essayez ceci;

c:\windows\system32\regsvr32.exe < nom du fichier >.dll

vous pouvez toujours prendre cette exception. si IIS - piscine paramètres Avancés, Activez 32 bits : vrai ;)

2
répondu onerkaya 2013-04-06 11:51:26

pour enregistrer une communication .dll ou .ocx Windows 7 32 bits, procédez de la manière suivante:

Copier .dll ou .ocx c:\windows\system32 Tapez cmd dans Run menu, il va chercher cmd.exe, clic droit et clic Run as Administrator

il affichera un prompt à c:\windows\system32

Tapez

regsvr32 ocxname.ocx pour l'enregistrer .ocx

ou

tapez regsvr32 dllname.dll pour l'enregistrer .dll

2
répondu raju chowrsiya 2017-04-27 10:55:53

mettre la dll dans le répertoire system32 ou syswow32, et utiliser regsvr32 approprié pour l'enregistrer. j'ai utilisé que même si elle a donné n'a pas réussi à enregistrer l'erreur, j'ai redémarré mon WIN 7 64 et mon application vb chargé la dll très bien!!

0
répondu anonymous 2011-03-17 19:16:30

si le problème n'est pas résolu, lors de l'utilisation de la version SysWoW64 de regsvr32, assurez-vous que toutes les dépendances des bibliothèques ont la même architecture. Par exemple, si

regsvr32 lib_x86.dll ne réussit pas à enregistrer la bibliothèque, et %SystemRoot%\SysWow64\regsvr32 lib_x86 échoue aussi, essayez de charger lib_x86 to dépendances application Walker pour voir la liste complète des dépendances. Si un article a 64 bits d'architecture, voici la raison, pourquoi regsvr32 ne charge pas la bibliothèque 32 bits.

0
répondu Alexus 2012-04-27 10:29:39

j'ai eu l'erreur "le module peut être compatible avec cette version de windows" pour les deux versions de RegSvr32 (32 bits et 64 bits). J'essayais d'enregistrer une DLL qui a été construite pour XP (32 bits) dans Server 2008 R2 (x64) et aucune des résolutions Regsr32 n'a fonctionné pour moi. Cependant, enregistrer l'assemblage dans le .Net approprié a fonctionné parfaitement pour moi. C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe

0
répondu Dave Heffernan 2014-04-15 10:56:05

lien ci-Dessous sauvé la journée

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

utilisez les RegSvcs appropriés comme spécifié dans le lien ci-dessus

c:\Windows\Microsoft. NET \ Framework\v4.0.30319\RegSvcs.EXE. ...\ Shared\Your.dll / tlb:votre.tlb

0
répondu Mathulan 2015-02-05 10:24:55

essayez de l'exécuter à Cadrork64.

Exemple:

  • 32 bits

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

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\RegAsm.exe D:\DemoIconOverlaySln\Demo\bin\Debug\HandleOverlayWarning\AsmOverlayIconWarning.dll /codebase
    
-1
répondu Dragon-Vo 2014-03-04 15:55:16