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

C# Discussion :

Pb pour utiliser une interface COM sous C#.


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 8
    Par défaut Pb pour utiliser une interface COM sous C#.
    Bonjour a tous,

    Je suis en train de faire une petite application wpf.
    Je suis donc en C# sous Visual Studio 2012

    Je voudrais utiliser les services d'un composant COM existant (et registré sur ma machine).

    Voici ce que j'ai fait :
    Dans mon projet, j'ai rajouté une référence correspondant au composant 'Toto' (j'ai retrouvé le composant 'Toto' dans la liste des bibliothèques de type COM).
    Ainsi, sous l'explorateur d'objets de Visual, je vois un objet "interop.Toto" qui présente plusieurs interfaces dont celle qui m'interesse : IMachin (interface publique de la classe Machin)

    Dans mon code, je déclare un objet de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Toto.IMachin oMachin;
    oMachin = new Toto.Machin();
    Pas de soucis a la compilation.
    Par contre, lors de l’exécution, j'ai une exception lors du new :
    "La récupération de la fabrique de classes COM pour le composant avec le CLSID {....} a échoué en raison de l'erreur suivante : 0x80040111 ClassFactory ne peut pas fournir la classe demandée (CLASS_E_CLASSNOTAVAILABLE)"

    J'ai regardé dans les clé de registre, la classe existe bien sous HKEY_CLASSES_ROOT avec le même CLSID !!!

    Si quelqu'un a une idée sur ce problème, un grand merci d'avance !!!!

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour
    Plusieurs pistes

    Cas 1: tu peux appeler une ancienne interface via un composant com mis à jour qui herites de cette ancienne interfce(pour raison de compatilite ascendante) mais la dll de l'ancienne interface n'est pas installe sur le poste developpement ou client...

    cas 2 : le class appele n'est pas creatable (not creatable) c.à.d n'a pas de constructeur public new...

    L'utilitaire OleCom Viewer permet de lire le fichier .tlb et de verifier le 1er point :nom du fichier dll, chemin d'acces ..

    Sa commande View permet d'examiner le detail du fichier IDL: interface,class ,methodes et prop et leurs attributs Com (Dual,Dispatch ,Creatable etc...)...
    Bon code....

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

Discussions similaires

  1. Utilisation du NFC pour établir une connexion Bluetooth sous Android
    Par Viish dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 09/08/2011, 18h24
  2. [Templates] Quoi utiliser pour faire une interface graphique rapidement
    Par une_tite_question dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 13/10/2008, 22h35
  3. Probleme d'utilisation d'une interface COM
    Par zuzuu dans le forum Windows
    Réponses: 4
    Dernier message: 17/09/2007, 12h25
  4. [RECHERCHE] un module pour developer une interface graphique
    Par romtrash dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 10/03/2005, 15h46
  5. Réponses: 12
    Dernier message: 22/02/2005, 17h45

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