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 :

Enregistrement objet COM impossible


Sujet :

MFC

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 6
    Par défaut Enregistrement objet COM impossible
    Bonjour à tous,

    Il y a quelques années, j'ai développé un objet COM sous windows NT avec VC++6. Aujourd'hui, je dois installer l'application l'utilisant sur un autre PC, toujours sous Windows NT.
    J'ai donc repris ma procédure d'installation de l'époque, mais au moment de lancer l'appli, celle-ci me dit qu'elle n'arrive pas à charger l'objet COM...

    Je regarde donc en base de registre et effectivement, mon objet n'est pas répertorié dans la base. Sur le coup, je me dis, "ok, pas grave, je vais faire l'enregistrement à la main, je l'avais peut-être mal fait dans la procédure à l'époque"... Mais en fait, ce n'est pas ça, même à la main, il reste inexistant en base.

    Voilà ce que je fais dans une fenêtre DOS.
    c:\MonObjetCom.exe /regserver (Entrée)

    c:\
    Pas de message d'erreur...

    Normalement, ça devrait marcher, en tout cas, ça fonctionne sur d'autre PC, sous NT ou XP...
    De quoi cela peut-il venir ?

    Autre précisision, il y a une autre appli qui utilise aussi un objet COM, mais JAVA cette fois qui crée toutes ses clés à la main dans la procédure d'install et qui visiblement fonctionne lui...
    Pourquoi le regserver ne fonctionne pas sur cette "nouvelle" machine ?

    Merci de votre aide.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    ça ne serait un probleme de droit d'accés ?
    tu as les droits administrateurs au moment de l'install ?

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 6
    Par défaut
    Oui oui... Je suis bien admin.
    Il m'est possible de créer des clés sous CLASSES_ROOT, de ce coté là, y'a pas de problème.

    Par contre, sous NT, est-il possible d'interdir l'utilisation de cette méthode avec le ressourcekit par exemple ? J'ai reçu le PC installé et comme c'est pour une grande boite, il est fort possible que certaine fonctionnalité soit bridées, mais comment le savoir ?

    J'ai NT sur mon PC à la maison, j'ai essayé encore hier soir et ça fonctionne sans problème... A priori, il doit y avoir une restriction qq part, une dll sur ce NT qui n'est pas enregistrée au qq chose comme ça. Il doit bien y avoir un truc, je vais pas me farcir la description des clés dans un .reg pour les 6 ou 7 objets COM de l'appli. C'est l'ultime solution...

  4. #4
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Normalement on passe par regsvr32.
    Si l'option /regserver de ton exe ne fait rien, faut voir dans le code de l'exe.

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 6
    Par défaut
    Le code de l'exe fonctionne très bien sur d'autre machine ayant XP et il a déjà été installé tel quel sur une autre machine, avec la même procédure d'install... Donc, je ne pense pas que le code de l'exe soit mauvais.

    le regsvr32 n'est-il pas utilisé pour les dll uniquement ?
    Je risque rien à essayer remarquez...
    ...
    C'est bien ce que je pensais, j'ai la boite d'erreur qui me dit que mon exe n'est pas une dll ou un ocx... (Normal...)

    Une autre idée avant que je commence l'édition d'un fichier.reg pour le faire à la main ? Y'a pas de services NT associés à lancer pour que ça fonctionne ? De dll à avoir ? J'avoue que je sèche un peu là, je vois pas d'où ça peut venir.

  6. #6
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    L'inscription d'un composant, c'est simplement écrire quelques clés dans le registre. Tu peux étudier le comportement de ton exe avec regmon et ainsi détecter s'il se voit refuser certaines choses...
    http://www.sysinternals.com/Utilities/Regmon.html

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 6
    Par défaut
    J'ai comparé les accès sur 2 machines différentes...

    Après avoir récupéré le liens vers ATL.dll dans System32... Sur une machine qui fonctionne j'ai ça :
    Monexe.exe:191 CreateKey HKCR\AppID\{C9516D24-4AD0-11D6-95B6-0000B4AD2AC4} SUCCESS Access: 0xF003F

    Alros que sur le PC qui n'accepte pas l'enregistrement, il va faire ça :
    Monexe.exe:263 QueryValue HKLM\SOFTWARE\Microsoft\OLE\DefaultAccessPermission
    NOT FOUND

    Pour résumer, dans le premier cas, il part bien dans la création de mes clés sous HKCR, dans le second... il regarde les droits d'accès pour OLE... et part dans un grand n'importe quoi... Et ensuite, j'ai un appel RPCSS... puis plus rien...

    Etrange étrange cette histoire... Commence à m'em***der ces co** avec leur PC pré-installé...

    Donc en gros Aurelien, mon exe ne cherche pas à créer les clés, il cherche plutôt le droit de le faire qq part j'imagine... (pourquoi RPCSS balance une requête... mystère...)

    Je suis pas certain que ma question soit en rapport avec Visual en fait...

  8. #8
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    C'est par forcément ton exe. Dans la mesure où il utilise OLE/COM, ça peut être un problème de configuration, mais là j'ai pas d'idée.
    Essaye de faire un /unregserver puis un /regserver...

  9. #9
    Membre à l'essai
    Inscrit en
    Novembre 2002
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 6
    Par défaut
    J'ai déjà essayé le /unreg puis le /reg, mais sans succès.

    Je crois bien que je vais me farcir les clés à la main... En espérant que ça fonctionne quand même :roll:

Discussions similaires

  1. Réponses: 21
    Dernier message: 16/09/2013, 22h00
  2. Objet COM et enregistrement
    Par topolino dans le forum C#
    Réponses: 1
    Dernier message: 23/12/2010, 03h14
  3. [VS2005]Probleme enregistrement objet COM
    Par Mat.M dans le forum Visual C++
    Réponses: 2
    Dernier message: 27/06/2007, 22h06
  4. [VS.NET] Comment enregistrer un objet COM
    Par Dnx dans le forum Visual Studio
    Réponses: 5
    Dernier message: 24/03/2005, 22h38

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