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

API, COM et SDKs Delphi Discussion :

Modifier l'ID unique d'une Dll COM+ pour l'enregistrer plusieurs fois sur un serveur


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 211
    Points : 85
    Points
    85
    Par défaut Modifier l'ID unique d'une Dll COM+ pour l'enregistrer plusieurs fois sur un serveur
    Bonjour,

    Pour le besoin de mon application web j'édite à l'aide de Delphi une DLL que j'enregistre en tant que composant COM+.
    Cela fonctionne plutot bien.

    Le soucis c'est que j'aimerais installer plusieurs version de cette DLL sur un même serveur. Or le "Service de composants" Windows ne permet pas de le faire car il signale que la DLL est déjà enregistré (y compris si je change de nom ou de chemin).

    J'ai compris qu'il y avait un "ID Application" (ou CLSID ?) relié à la DLL.

    Comment modifier cet "ID Application" (ou CLSID ?) sous Delphi afin de pouvoir enregistrer plusieurs DLL sur un même serveur ?

    D'avance merci pour votre aide.

  2. #2
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 173
    Points
    4 173
    Par défaut
    Pour le besoin de mon application web j'édite à l'aide de Delphi une DLL que j'enregistre en tant que composant COM+.
    Cela fonctionne plutot bien.
    Oui, je fais la même chose. COM+ est fait pour ça.

    Le soucis c'est que j'aimerais installer plusieurs version de cette DLL sur un même serveur.
    Hum... Qu'est-ce que tu entends par là ? Installer des versions différentes (genre DLL V1 qui tourne actuellement en Prod et DLL V2 qui est encore en cours de dev...) ou avoir plusieurs instances de la même application COM+ qui s'exécutent ?

    J'ai compris qu'il y avait un "ID Application" (ou CLSID ?) relié à la DLL.
    En fait c'est un peu compliqué. Avant d'être du COM+, c'est avant tout du COM, donc tu as toute la machinerie des objets COM qui s'applique : Ta DLL doit contenir une bibliothèque de types qui possède un LIBID.
    Elle déclare certainement des interfaces qui sont identifiées par un IID, qui sont ensuite implémentées par tes objets COM+ eux même identifiés par un CLSID.
    Enfin, tous les objets COM qui vont s'exécutés dans un environnement COM+ ou DCOM sont regroupés sous un identifiant d'application : l'AppID qui te permet de configurer leur propriétés d'exécution dans dcomcnfg.

    De plus, tes pages Web accèdent sûrement aux objets COM+ non pas à travers leur CLSID, mais avec leur ProgID, c'est à dire un nom symbolique sous forme textuel au lieu du GUID.

    Tout ces identifiants sont enregistrés dans la base de registre, sous HKEY_LOCAL_MACHINE\Software\Classes, et son raccoucit HKEY_CLASSES_ROOT.

    Cet enregistrement est global à la machine et c'est pour ça que tu ne peux pas enregistrer deux versions différentes de la même DLL...

    Donc si tu veux créer une deuxième version de ta DLL, il va falloir faire attention à tous ces GUID, et peut-être les modifier tous... Ce qui revient à recréer une nouvelle TLB dans Delphi !

Discussions similaires

  1. Utilisation d'interop a travers une dll Com
    Par Dadedi dans le forum C#
    Réponses: 0
    Dernier message: 01/10/2009, 10h57
  2. [COM] utiliser la librairie standard dans une dll COM
    Par kacedda dans le forum Visual C++
    Réponses: 5
    Dernier message: 13/03/2008, 14h57
  3. utilsation d'une dll com
    Par Babylonne dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/12/2007, 21h20
  4. Comment accéder à une DLL COM depuis un exécutable ?
    Par Denys dans le forum API, COM et SDKs
    Réponses: 10
    Dernier message: 20/09/2005, 08h04
  5. Qu'est ce qu'une DLL Com?
    Par Clotilde dans le forum Langage
    Réponses: 1
    Dernier message: 24/05/2005, 20h07

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