IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Dll impossible à enregistrer avec regsvr32


Sujet :

MFC

  1. #1
    Nouveau membre du Club Avatar de nmarf
    Inscrit en
    Mai 2003
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 92
    Points : 39
    Points
    39
    Par défaut Dll impossible à enregistrer avec regsvr32
    Bonjour à tous,

    J'utilise dans une application un contrôle activeX "Navigateur Web Microsoft" (CWebBrowser2) pour afficher le contenu d'un fichier html.
    Sous XP, pas de problème tout fonctionne normalement. Mais sur une machine sous NT4, pas de plantage mais la page avec le contrôle refuse de s'afficher.
    C'est peut-être dû au fait qu'Internet Explorer n'est pas installé sur la machine et/ou parceque le NT installé a été allégé de pas mal de choses.

    En cherchant un peu, j'ai trouvé les dll qui manquent : shdocvw.dll et mshtml.dll. Je les ai copiées à partir d'un poste NT4 "non-allégé" dans le répertoire winnt\system32 et j'ai voulu les enregistrer avec la commande regsvr32 mais j'ai droit au message :
    LoadLibrary ("mshtml.dll") failled.
    GetLastError returns 0x0000007e
    Pourquoi je n'arrive pas à enregistrer ces dll ?

    Pour info, j'ai essayé ces commandes (à partir d'une console, à partir de la racine et aussi depuis le repertoire winnt\system32) :
    regsvr32 mshtml.dll
    regsvr32 /i mshtml.dll
    regsvr32 /u mshtml.dll puis regsvr32 /i mshtml.dll
    ...
    Et j'ai toujours le même résultat...

    Merci d'avance !


    J'espère être dans le bon forum...

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    si elles ne s'enregistrent pas, c'est que ce sont des dlls classiques, pas des objets com

  3. #3
    Nouveau membre du Club Avatar de nmarf
    Inscrit en
    Mai 2003
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    Pourtant elles doivent bien pouvoir s'enregistrer : quand on regarde ICI (dans la partie résolution) il est bien dit d'utiliser regsvr32 avec des dll dont deux sont justement celles qui m'interressent.
    Bon, le problème décrit sur le lien n'est pas le mien mais ce doit être une piste.

    :

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    cela doit venir d'un problème de version, et des différences entre NT et XP

  5. #5
    Nouveau membre du Club Avatar de nmarf
    Inscrit en
    Mai 2003
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    J'ai pourtant bien pris garde à prendre des dll sur un poste NT.
    Bizarre tout ça...

  6. #6
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Essaie de relancer l'appli une fois les dlls présentes.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut Re: Dll impossible à enregistrer avec regsvr32
    Citation Envoyé par nmarf
    En cherchant un peu, j'ai trouvé les dll qui manquent : shdocvw.dll et mshtml.dll. Je les ai copiées à partir d'un poste NT4 "non-allégé" dans le répertoire winnt\system32 et j'ai voulu les enregistrer avec la commande regsvr32 mais j'ai droit au message :
    LoadLibrary ("mshtml.dll") failled.
    GetLastError returns 0x0000007e
    0x7e = "Le module spécifié est introuvable."

    mshtml.dll utilise beaucoup d'autres dll, il doit en manquer. Elle doit aussi utiliser des objets COM, et là... Le mieux est d'installer propement IE.

  8. #8
    Nouveau membre du Club Avatar de nmarf
    Inscrit en
    Mai 2003
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    J'ai essayé de relancer l'appli, mais ça n'a rien donné.

    Par contre, en rajoutant des dll, on (c'est un collègue qui a fait la manip) a réussi à enregistrer shdocvw.dll. Ca ne change malheureusement rien au problème. Par contre le message d'erreur a changé pour mshtml.dll :
    DllRegisterServer in mshtml.dll failed.
    Return code was : 0x80029c4a
    Je n'arrive pas à trouver à quoi correspond ce code d'erreur

  9. #9
    Nouveau membre du Club Avatar de nmarf
    Inscrit en
    Mai 2003
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 92
    Points : 39
    Points
    39
    Par défaut Re: Dll impossible à enregistrer avec regsvr32
    Citation Envoyé par Aurelien.Regat-Barrel
    mshtml.dll utilise beaucoup d'autres dll, il doit en manquer. Elle doit aussi utiliser des objets COM, et là... Le mieux est d'installer propement IE.
    Le problème c'est que le système est allégé parce que la place sur le disque est très limitée (128 mo auxquels il faut retrancher la taille prise par WinNT) et IE est très gourmand.

    Pour l'instant, j'essaie de rajouter une à une les dll dont dépend mshtml.dll (grace à l'outil Dependency Walker).

  10. #10
    Nouveau membre du Club Avatar de nmarf
    Inscrit en
    Mai 2003
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    J'ai enfin trouvé à quoi correspond mon code d'erreur :
    Error: 0x80029C4A (TYPE_E_CANTLOADLIBRARY): Error loading type library/DLL
    Pas beaucoup plus avancé mais il a au moins l'air d'arriver à trouver la dll.

    J'en profite pour remercier ceux qui s'intéressent à mon problème

  11. #11
    Membre habitué
    Inscrit en
    Avril 2004
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 122
    Points : 138
    Points
    138
    Par défaut
    Salut,
    Pour faire simple, tu as un utilitaire qui s'appelle Depends installé avec visual studio, il permet de voir avec quelles dll ton exe ou ta dll sont liées.
    Execute depends sur les dll qui ne se registrent pas et vérifie que toutes les dll requises sont présentes et bien registrées.

  12. #12
    Nouveau membre du Club Avatar de nmarf
    Inscrit en
    Mai 2003
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 92
    Points : 39
    Points
    39
    Par défaut Re: Dll impossible à enregistrer avec regsvr32
    C'est ce que je fais déjà. En fait l'outil que j'appelle Dependency Walker est le même que Depends

    Citation Envoyé par nmarf
    Pour l'instant, j'essaie de rajouter une à une les dll dont dépend mshtml.dll (grace à l'outil Dependency Walker).

  13. #13
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par nmarf
    J'ai enfin trouvé à quoi correspond mon code d'erreur :
    Error: 0x80029C4A (TYPE_E_CANTLOADLIBRARY): Error loading type library/DLL
    Pas beaucoup plus avancé mais il a au moins l'air d'arriver à trouver la dll.
    Tu as l'outil "errlook" dans VC++ qui sert à ça.

    Cette erreur, c'est très certainement qu'il manque des objets COM. Alors pour savoit ce qui manque...
    mshtml.dll = "Visionneuse HTML Microsoft (R)"
    autrement dit, cette dll a besoin de IE, au complet. Soit tu installes IE, soit tu te débrouilles pour te passer de cette dll

  14. #14
    Nouveau membre du Club Avatar de nmarf
    Inscrit en
    Mai 2003
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    Tu as l'outil "errlook" dans VC++ qui sert à ça.
    Merci ! Petit à petit je vais commencer à connaître l'utilitée de tous ces outils installés avec Visual Studio

    Citation Envoyé par Aurelien.Regat-Barrel
    Cette erreur, c'est très certainement qu'il manque des objets COM. Alors pour savoit ce qui manque...
    mshtml.dll = "Visionneuse HTML Microsoft (R)"
    Comment as-tu fait pour savoir à quoi la dll correspondait ?
    Et comment connaître le nom anglais du contrôle, pour élargir les recherches ?

    Citation Envoyé par Aurelien.Regat-Barrel
    autrement dit, cette dll a besoin de IE, au complet. Soit tu installes IE, soit tu te débrouilles pour te passer de cette dll
    Il n'existe pas de version allégée d'Internet Explorer ? Toutes les installations que j'ai pu essayer mon demandée la taille prohibitive de 50mo :shock:

  15. #15
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par nmarf
    Citation Envoyé par Aurelien.Regat-Barrel
    Cette erreur, c'est très certainement qu'il manque des objets COM. Alors pour savoit ce qui manque...
    mshtml.dll = "Visionneuse HTML Microsoft (R)"
    Comment as-tu fait pour savoir à quoi la dll correspondait ?
    c'est dans les propriétés de la dll (clic droit...)

    Citation Envoyé par Aurelien.Regat-Barrel
    autrement dit, cette dll a besoin de IE, au complet. Soit tu installes IE, soit tu te débrouilles pour te passer de cette dll
    Il n'existe pas de version allégée d'Internet Explorer ? Toutes les installations que j'ai pu essayer mon demandée la taille prohibitive de 50mo :shock:
    IE est fortement intégré à Windows, c'est pas juste un navigateur web, y'a tout plein de choses qu'il gère. Il met donc à jour tout un tas de dll systèmes.
    Tu devrais te tourner vers Windows embeded.

  16. #16
    Nouveau membre du Club Avatar de nmarf
    Inscrit en
    Mai 2003
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 92
    Points : 39
    Points
    39
    Par défaut
    Finallement, j'ai trouvé ICI une version d'Internet Explorer Stand-Alone qui pèse moins de 100 ko. Maintenant les dll s'enregistrent !
    Il semblerait que ces versions Stand-Alone soient faites pour permettre à des créateurs de sites web de tester leurs sites sous plusieurs versions IE sans avoir à se battre avec les différentes installations. Par contre j'ai pu lire qu'il ne fallait à aucun prix les utiliser comme browser principale à cause de nombreuses failles de sécurité.

    Bon, je n'arrive pas encore à afficher tout le contenu de mon fichier HTML et les feuilles de style ne sont pas reconnues, mais je progresse.

    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une dll enregistrable avec c:\WINDOWS\system32\regsvr32.exe
    Par Immobilis dans le forum Général Dotnet
    Réponses: 13
    Dernier message: 09/03/2009, 21h37
  2. Réponses: 2
    Dernier message: 17/05/2007, 00h44
  3. Probleme recensement DLL ou ActiveX avec Regsvr32
    Par Hypollite76 dans le forum Delphi
    Réponses: 1
    Dernier message: 23/10/2006, 15h50
  4. [VB6] Savoir si un activeX est déjà enregistré avec regsvr32 ?
    Par Vince dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 04/08/2006, 12h38
  5. [VS 2005] Compilation avec DLL impossible
    Par Julaie95 dans le forum MFC
    Réponses: 16
    Dernier message: 19/05/2006, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo