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

Windows Forms Discussion :

[C#] C# et composant COM


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [C#] C# et composant COM
    Bonjour,

    Peut être pourrez vous m'aider à résoudre mon problème!
    J'ai une appli en C# et j'essaye de communiquer avec un composant COM (C++) et en particulier une fonction qui prend en paramètre un VARIANT*.

    J'ai bcp de problème pour réussir à passer correctement mes variables...
    Considérons la fonction COM à appeler: GetSomme. Côté C#, je dois passer un ref Object et côté COM elle reçoit un VARIANT*.

    Si l'objet côté C# ne contient qu'une valeur (un double par exemple), côté COM, la variable est bien connue dans le VARIANT. C'est ok.

    Si par contre j'essaye de passer un tableau de valeur (j'ai vu dans la doc Microsoft qu'il fallait utiliser le type Array), côté COM, mon VARIANT n'est pas bien initialisé, pas de type connu. Le problème c'est que c'est cette dernière chose que j'aimerais faire!

    Comment faire à votre avis pour passer mon tableau correctement (j'ai testé l'objet COM sous Excel et ça marche nickel) :

    Merci!
    Caro

  2. #2
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 56
    Points : 64
    Points
    64
    Par défaut
    Bonjour,
    à tout hasard, tu as essayé de passer un object[] (au lieu d'un tableau d'entiers) à ta méthode COM ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    J'ai cherché dans cette voie, mais la méthode COM prend en paramètre un ref Object. A partir de là, même si je crée un object[]... qu'est ce que je passe à la méthode?

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 56
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par beway
    la méthode COM prend en paramètre un ref Object
    Pour contourner ce problème, tu peux faire un code de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ArrayList a = new ArrayList();
    a.Add(1);
    a.Add(2);
    a.Add(3);
    object o = a.ToArray(typeof(object));
    TonComposant.TaFonction(ref o);
    D'accord, c'est de la bidouille, mais syntaxiquement ça marche
    Je suis vraiment curieux de savoir si côté COM ça sera bien interprété...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Ca marche! Génial!

    Merci beaucoup beaucoup.
    Je ne trouve pas que c'est plus de la bidouille qu'autre chose!
    Par contre, pourquoi ne peut on pas faire ça avec un simple tableau de double par exemple!... mais bon, un ArrayList me convient bien!

    Merci encore!

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 56
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par beway
    Par contre, pourquoi ne peut on pas faire ça avec un simple tableau de double par exemple!
    C'est bien pour ça que je dis que c'est de la bidouille

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

Discussions similaires

  1. Faire un client pour un composant Com
    Par thecrax dans le forum C++
    Réponses: 2
    Dernier message: 02/06/2006, 16h30
  2. Développement d'un composant COM
    Par inertia dans le forum C++
    Réponses: 18
    Dernier message: 01/06/2006, 15h21
  3. [ATL] Debuguer un composant COM+ 1.0
    Par glKabuto dans le forum MFC
    Réponses: 8
    Dernier message: 16/05/2006, 19h22
  4. [VB] Problème composants COM Word
    Par Vince dans le forum VBA Word
    Réponses: 5
    Dernier message: 08/12/2005, 10h18
  5. Composant COM et style XP
    Par Reisubar dans le forum Composants VCL
    Réponses: 7
    Dernier message: 10/11/2003, 19h23

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