web-dev-qa-db-fra.com

Comment enregistrer un fichier DLL sous Windows 7 64 bits?

J'ai essayé d'utiliser le code suivant:

cd c:\windows\system32
regsvr32.exe dllname.ax

Mais cela ne fonctionne pas pour moi. Comment enregistrer un fichier DLL sous Windows 7 avec un processeur 64 bits?

100
Rajkumar Reddy

Tapez regsvr32 name.dll dans l'invite de commande (exécutée en mode élevé!) Et appuyez sur "Entrée". Notez que name.dll doit être remplacé par le nom du DLL que vous souhaitez enregistrer. Par exemple, si vous souhaitez inscrire iexplore.dll, tapez regsvr32 iexplore.dll.

68
Harold SOTA

Eh bien, vous ne spécifiez pas s'il s'agit d'une dll 32 ou 64 bits et vous n'incluez pas le message d'erreur, mais je suppose que le problème est identique à celui décrit dans cet article de la Base de connaissances: Message d'erreur lorsque vous Exécutez Regsvr32.exe sur Windows 64 bits

Citation de cet article:

Ce problème se produit car le fichier Regsvr32.exe du dossier System32 est une version 64 bits. Lorsque vous exécutez Regsvr32 pour enregistrer une DLL, vous utilisez la version 64 bits par défaut.

Solution de cet article:

Pour résoudre ce problème, exécutez Regsvr32.exe à partir du dossier% SystemRoot%\Syswow64. Par exemple, tapez les commandes suivantes pour enregistrer la DLL: cd \windows\syswow64regsvr32 c:\filename.dll

195
Hans Olsson

Si le DLL est 32 bit:

Copiez le DLL dans C:\Windows\SysWoW64 \
Dans une invite de commande élevée : %windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll

si le DLL est 64 bit:

Copiez le DLL dans C:\Windows\System32 \
Dans une invite de commande élevée : %windir%\System32\regsvr32.exe %windir%\System32\namedll.dll

Je sais que cela ne semble pas être le cas, mais c'est ainsi que cela fonctionne. Voir:

http://support.Microsoft.com/kb/24987
Citation: "Remarque Sur une version 64 bits d'un système d'exploitation Windows, il existe deux versions du fichier Regsv32.exe:
La version 64 bits est% systemroot%\System32\regsvr32.exe.
La version 32 bits est% systemroot%\SysWoW64\regsvr32.exe.
"

101
Liam

Sur un système x64, system32 est pour 64 bits et syswow64 pour 32 bits (et non l'inverse, comme indiqué dans une autre réponse). WOW (Windows sur Windows) est le sous-système 32 bits exécuté sous le sous-système 64 bits.

C'est un gâchis en termes de nommage, et ne sert qu'à confondre, mais c'est comme ça.

Encore ...

syswow64 est 32 bits, PAS 64 bits.

system32 est 64 bits, pas 32 bits.

Il y a un regsrv32 dans chacun de ces répertoires. L'un est en 64 bits et l'autre en 32 bits. Il en va de même avec odbcad32 et al. (Si vous souhaitez afficher les pilotes ODBC 32 bits qui ne s'affichent pas avec le paramètre par défaut odbcad32 dans system32, qui est 64 bits.)

29
phill

Ouvrez le menu Démarrer et tapez cmd dans le champ de recherche. Maintenez les touches Ctrl + Maj enfoncées et appuyez sur Entrée.

Ceci exécute l'invite de commande en mode administrateur.

Maintenant tapez: regsvr32 MyComobject.dll

8
Sushant Rath

Enfin, j’ai trouvé la solution qui consiste à exécuter CMD en tant qu’administrateur puis à écrire

cd \windows\syswow64

alors écris ceci

regsvr32 c:\filename.dll

J'espère que cette réponse vous aidera

6
Hayder Chebaane

Si le DLL est en 32 bits:

  1. Copiez le DLL dans C:\Windows\SysWoW64 \
  2. Dans les cmd élevés:% windir%\SysWoW64\regsvr32.exe% windir%\SysWoW64\namedll.dll

si DLL est de 64 bits:

  1. Copiez le DLL dans C:\Windows\System32 \
  2. Dans cmd surélevé:% windir%\system32\regsvr32.exe% windir%\system32\namedll.dll
6
Dragos

Tout ici échouait en tant que mauvais chemin. Ensuite, je me suis rappelé un tour des anciens jours Win95. Ouvrez le dossier du programme contenant le fichier .dll, ouvrez C:/Windows/System32, défilez jusqu'à regsvr32 et faites glisser la DLL du dossier du programme vers rgsrver32. Boom, c'est fait.

5
ohm1

Et en même temps, si vous obtenez le code d'erreur 0x80040201, essayez la solution dans DllRegisterServer a échoué avec le code d'erreur 0x80040201, mais assurez-vous que vous ouvrez l'invite de commande en tant que , en tant qu'administrateur .

3
SHAKIR SHABBIR

Connaître le message d'erreur serait plutôt précieux. Il est destiné à fournir des informations, même si cela n’a aucun sens pour vous. Obligé de deviner, je dirais que la DLL est un filtre DirectX 32 bits. Dans ce cas, cela devrait être le bon plan d'action:

cd c:\windows\syswow64
move ..\system32\dllname.ax .
regsvr32.exe dllname.ax

Cela doit être exécuté à l'invite d'une commande élevée, de sorte que le contrôle de compte d'utilisateur ne puisse pas arrêter l'accès au registre requis. Posez plus de questions à ce sujet sur superuser.com

3
Hans Passant

Vous devez exécuter le cmd.exe dans c:\windows\system32\ by administrator

Commandes: Pour l'annulation de l'enregistrement * Fichiers .dll

regsvr32.exe /u C:\folder\folder\name.dll

Pour l'enregistrement * Fichiers .dll

regsvr32.exe C:\folder\folder\name.dll
3
lails

Je viens de tester cette méthode extrêmement simple et cela fonctionne parfaitement - mais j'utilise le compte administrateur intégré, je n'ai donc pas à sauter dans les anneaux pour obtenir des privilèges élevés.

Le fichier de commandes suivant évite à l'utilisateur de déplacer des fichiers dans/hors des dossiers système. Il laisse également à Windows le soin d'appliquer la version appropriée de Regsvr32.

INSTRUCTIONS:

  • Dans le dossier contenant le fichier de bibliothèque (fichier -.dll ou -.ax) que vous souhaitez enregistrer, ouvrez un nouveau fichier texte et collez-le dans UNE des routines ci-dessous:

    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
    
  • Enregistrez votre nouveau fichier texte en tant que fichier batch (-.bat); puis faites simplement glisser votre fichier -.dll ou -.ax par-dessus le fichier de traitement par lots.

  • Si le contrôle de compte d'utilisateur ne vous donne pas la possibilité d'exécuter le fichier de commandes en tant qu'administrateur, vous devrez peut-être élever manuellement les privilèges (les instructions concernent Windows 7):

    1. Cliquez avec le bouton droit sur le fichier de commandes.
    2. Sélectionnez Create shortcut;
    3. Cliquez avec le bouton droit sur le raccourci.
    4. Sélectionnez Properties;
    5. Cliquez sur l'onglet Compatibility.
    6. Cochez la case intitulée Run this program as administrator;
    7. Glissez-déposez votre fichier -.dll ou -.ax par-dessus le nouveau raccourci au lieu du fichier de traitement par lots.

c'est tout. J'ai choisi COPY au lieu de MOVE pour éviter l'échec de toute tentative de suivi liée au contrôle de compte d'utilisateur. L’enregistrement réussi doit être suivi de la suppression de la bibliothèque originale (-.dll ou -.ax) fichier

Ne vous inquiétez pas à propos des copies effectuées dans le dossier système (C:\Windows\System32 ou C:\Windows\SysWOW64) par les passes précédentes - ils seront écrasés à chaque fois que vous exécuterez le fichier de commandes.

Sauf si vous avez exécuté le mauvais fichier batch, auquel cas vous voudrez probablement supprimer la copie réalisée dans le mauvais dossier système (C:\Windows\System32 ou C:\Windows\SysWOW64) avant d'exécuter le fichier de commandes approprié, ... ou ...

  • Aidez Windows à choisir le bon fichier de bibliothèque à enregistrer en qualifiant complètement son répertoire.

    1. À partir du fichier de commandes à droite, copiez le chemin du dossier système
      • Si 64 bits: C:\Windows\System32
      • Si 32 bits: C:\Windows\SysWOW64
    2. Collez-le sur la ligne suivante pour qu'il précède %nx1
      • Si 64 bits: regsvr32 "C:\Windows\System32\%nx1"
      • Si 32 bits: regsvr32 "C:\Windows\SysWOW64\%nx1"
        • Coller le chemin entre guillemets
        • Insérer une barre oblique inverse pour séparer %nx1 du chemin du dossier système
      • ou ...

  • Exécutez ce fichier de traitement par lots qui, dans l’ordre:

    1. Effectuer le nettoyage des processus d'enregistrement abandonnés
      • Annulez tout processus d’enregistrement complété par votre fichier de bibliothèque;
      • Supprimez toutes les copies de votre fichier de bibliothèque qui ont été enregistrées dans l'un des dossiers système.
      • Faites une pause pour vous permettre de terminer le fichier de commandes à ce stade (et en exécuter un autre si vous le souhaitez).
    2. Tentative d'installation 64 bits sur votre fichier de bibliothèque
      • Copiez votre fichier de bibliothèque dans C:\Windows\System32;
      • Enregistrez votre fichier de bibliothèque en tant que processus 64 bits.
      • Pause pour vous permettre de terminer le fichier de commandes à ce stade.
    3. Annuler l'installation de 64 bits
      • Annulez toute inscription de votre fichier de bibliothèque en tant que processus 64 bits;
      • Supprimez votre fichier de bibliothèque de C:\Windows\System32;
      • Faites une pause pour vous permettre de terminer le fichier de commandes à ce stade (et en exécuter un autre si vous le souhaitez).
    4. Essayez d’installer une installation 32 bits sur votre fichier de bibliothèque
      • Copiez votre fichier de bibliothèque sur C:\Windows\SystemWOW64
      • Enregistrez votre fichier de bibliothèque en tant que processus 32 bits.
      • Pause pour vous permettre de terminer le fichier de commandes à ce stade.
    5. Supprimer l'original, copie non enregistrée du fichier de bibliothèque
3

Il y a une différence dans Windows 7. La connexion en tant qu'administrateur pas donne les mêmes droits que lors de l'exécution d'un programme en tant qu'administrateur.

Allez dans Démarrer - Tous les programmes - Accessoires. Faites un clic droit sur la fenêtre de commande et sélectionnez "Exécuter en tant qu'administrateur". Enregistrez maintenant la dll normalement via: regsrvr32 xxx.dll

3

Une partie de la confusion concernant regsvr32 est que sur les fenêtres 64 bits, le nom et le chemin n’ont pas changé, mais il enregistre maintenant les DLL 64 bits. Le regsvr32 32 bits existe dans SysWOW64, un nom qui semble représenter des applications 64 bits. Toutefois, le nom WOW64 dans le nom fait référence à Windows sous Windows 64, ou plus précisément à Windows 32 bits à Windows 64 bits. Quand vous pensez de cette façon, le nom prend tout son sens, même s'il est déroutant dans ce contexte.

Je ne trouve pas ma source d'origine sur un blog MSDN, mais il est référencé dans cet article Wikipedia http://en.wikipedia.org/wiki/WoW64

2
Adam

Voici comment j'ai résolu ce problème sur un ordinateur Win7 x64:

1 - message d'erreur:

"CoCreateInstance () a échoué. Vérifiez vos entrées de registre CLSID {F088EA74-2E87-11D3-B1F3-00C0F03C37D3} et assurez-vous d'être connecté en tant qu'administrateur"

2 - procédure de correction:

  • Démarrer/tapez cmd/RightMouseClick sur cmd.exe et choisissez "Exécuter en tant qu'administrateur"
  • tapé: regsvr32/s C:\Program Files\Autodesk\3ds Max Design 2015\atl.dll regsvr32/s C:\Program Files\Autodesk\3ds Max Design 2015\MAXComponents.dll
  • redémarrez Win 7 et revenez dans les affaires!

J'espère que cela t'aides !

1
LAOMUSIC ARTS