Comment enregistrer un fichier DLL sur 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 puis-je enregistrer un fichier DLL sur Windows 7 avec un processeur 64 bits?

Tapez regsvr32 name.dll dans l’invite de commandes (exécuté en mode élevé!) Et appuyez sur “Entrée”. Notez que name.dll doit être remplacé par le nom de la DLL que vous souhaitez enregistrer. Par exemple, si vous souhaitez enregistrer le fichier iexplore.dll, tapez regsvr32 iexplore.dll .

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 c’est le même problème que 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\syswow64 regsvr32 c:\filename.dll

Si la DLL est 32 bits:

Copiez la DLL dans C: \ Windows \ SysWoW64 \
Dans une invite de commandes à %windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll élevés : %windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll

si la DLL est 64 bits:

Copiez la DLL dans C: \ Windows \ System32 \
Dans une invite de commandes à %windir%\System32\regsvr32.exe %windir%\System32\namedll.dll élevés : %windir%\System32\regsvr32.exe %windir%\System32\namedll.dll

Je sais que ça semble mal tourner, mais c’est comme ça que ça fonctionne. Voir:

http://support.microsoft.com/kb/249873
Quote: “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.

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 on Windows) est le sous-système 32 bits qui s’exécute sous le sous-système 64 bits.

C’est un gâchis dans la dénomination des termes et sert uniquement à confondre, mais c’est ainsi.

Encore …

syswow64 est 32 bits, pas 64 bits.

system32 est de 64 bits, PAS de 32 bits.

Il y a un regsrv32 dans chacun de ces répertoires. L’un est à 64 bits et l’autre à 32 bits. C’est le même accord avec odbcad32 et et al. (Si vous voulez voir les pilotes ODBC 32 bits qui n’apparaîtront pas avec odbcad32 par défaut dans le système 32 qui est 64 bits.)

Ouvrez le menu Démarrer et tapez cmd dans la zone de recherche Maintenez la touche Ctrl + Maj enfoncée et appuyez sur Entrée

Cela exécute l’invite de commande en mode Administrateur.

Maintenant, tapez: regsvr32 MyComobject.dll

Si la DLL est 32 bits:

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

si la DLL est 64 bits:

  1. Copiez la DLL dans C: \ Windows \ System32 \
  2. Dans cmd élevé:% windir% \ System32 \ regsvr32.exe% windir% \ System32 \ namedll.dll

Enfin, j’ai trouvé la solution juste lancer 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

Tout ici échouait comme un mauvais chemin. Puis je me suis souvenu d’un tour des anciens jours Win95. Ouvrez le dossier du programme dans lequel se trouve le fichier .dll, ouvrez C: / Windows / System32, descendez jusqu’à regsvr32 et faites glisser le fichier DLL du dossier du programme vers rgsrver32. Boom, fait.

Connaître le message d’erreur serait plutôt utile. Il est destiné à fournir des informations, même si cela n’a aucun sens pour nous. Étant obligé de deviner, je dirais que la DLL est un filtre DirectX 32 bits. Dans ce cas, cela devrait être la voie à suivre:

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

Cela doit être exécuté à une invite de commandes élevée afin que le contrôle de compte d’utilisateur ne puisse pas arrêter l’access au Registre requirejs. Posez plus de questions à ce sujet sur superuser.com

Je viens de tester cette méthode extrêmement simple et elle fonctionne parfaitement – mais j’utilise le compte d’administrateur intégré, donc je n’ai pas besoin de passer à travers des cerceaux pour obtenir des privilèges élevés.

Le fichier batch suivant évite à l’utilisateur de déplacer des fichiers dans les dossiers système. Il laisse également à Windows d’appliquer la version appropriée de Regsvr32 .

INSTRUCTIONS:

  • Dans le dossier contenant le fichier de bibliothèque ( -.dll ou -.ax ) que vous souhaitez enregistrer, ouvrez un nouveau fichier texte et collez l’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 glissez-déposez -.dll votre fichier -.dll ou -.ax en haut du fichier de commandes.

  • Si le contrôle de compte d’utilisateur ne vous permet pas d’exécuter le fichier de commandes en tant qu’administrateur, vous devrez peut-être élever manuellement les privilèges (les instructions sont pour 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 Run this program as administrator ;
    7. Glissez-déposez votre fichier -.dll ou -.ax en haut du nouveau raccourci au lieu du fichier de commandes.

C’est ça . J’ai choisi COPY au lieu de MOVE pour éviter l’échec de toute tentative de suivi liée à UAC. L’inscription réussie doit être suivie de la suppression du fichier de bibliothèque d’origine ( -.dll ou -.ax ).

Ne vous souciez pas des copies effectuées dans le dossier système ( C:\Windows\System32 ou C:\Windows\SysWOW64 ) lors des passages précédents – elles seront écrasées chaque fois que vous exécuterez le fichier de commandes.

Sauf si vous avez exécuté le mauvais fichier de commandes , auquel cas vous souhaiterez probablement supprimer la copie effectuée dans le mauvais dossier système ( C:\Windows\System32 ou C:\Windows\SysWOW64 ) avant d’exécuter le bon fichier de commandes, … ou…

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

    1. À partir du bon fichier de commandes, 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 à l’intérieur des guillemets
        • Insérer une barre oblique inverse pour séparer %nx1 du chemin du dossier système
      • ou
  • Lancez ce fichier batch de fusil de chasse qui va (dans l’ordre):

    1. Effectuer le nettoyage des processus d’enregistrement interrompus
      • Inverser tout processus d’inscription 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 du système.
      • 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
      • Inverser tout enregistrement de votre fichier de bibliothèque en tant que processus 64 bits;
      • Supprimez votre fichier de bibliothèque de C:\Windows\System32 ;
      • Pause pour vous permettre de terminer le fichier de commandes à ce stade (et en exécuter un autre si vous le souhaitez).
    4. Tenter l’installation de 32 bits sur votre fichier de bibliothèque
      • Copiez votre fichier de bibliothèque dans 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 la copie originale non enregistrée du fichier de bibliothèque

Il existe une différence dans Windows 7. La connexion en tant qu’administrateur ne donne pas 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

Et en faisant cela, 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 qu’Exécuter en tant qu’administrateur .

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

Commandes: Pour les fichiers d’ annulation d’enregistrement * .dll

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

Pour les fichiers d’ enregistrement * .dll

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

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 désormais les DLL 64 bits. Le fichier regsvr32 32 bits existe dans SysWOW64, un nom qui semble représenter des applications 64 bits. Cependant, le WOW64 dans le nom fait référence à Windows sous Windows 64, ou plus précisément à Windows 32 bits sous Windows 64 bits. Quand on y pense de cette façon, le nom a du sens même si cela prête à confusion dans ce contexte.

Je ne peux pas trouver ma source originale sur un blog MSDN mais il est référencé dans cet article de Wikipedia http://en.wikipedia.org/wiki/WoW64

Voici comment j’ai résolu ce problème sur une machine Win7 x64:

1 – message d’erreur:

“CoCreateInstance () a échoué Plkease vérifiez vos entrées de registre CLSID {F088EA74-2E87-11D3-B1F3-00C0F03C37D3} et assurez-vous que vous êtes connecté en tant qu’administrateur”

2 – procédure fixe:

  • Démarrer / tapez cmd / RightMouseClick sur cmd.exe et choisissez “Exécuter en tant qu’administrateur”
  • saisie: 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 relancez vos activités!

J’espère que cela t’aides !