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 :

Lire un variant en C#


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Lire un variant en C#
    Bonjour,
    Actuellement j'ai un problème pour récupérer une valeur de type variant en C#.
    Je travaille avec un objet COM développé en Delphi qui possède une fonction toto qui renvoi un ole_variant.
    Coté C#, je récupère cette fonction toto mais je ne sais pas comment lire le résultat car le type variant n'existe pas en C#.

    Quelqu'un a une solution?

  2. #2
    Membre confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    Points : 627
    Points
    627
    Par défaut
    Si tu connais le type de l'objet avant qu'il ne devienne un OleVariant, tu peux essayer de caster le même type côté C#. Par exemple, si tu sais que c'est un byte array, tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    byte[] myArray = myOleVariant as byte[];
    A défaut, tu peux caster dans le type que toi, tu souhaites utiliser, et gérer les exceptions.

  3. #3
    Membre habitué Avatar de maleaume
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 131
    Points
    131
    Par défaut
    regarde le type dynamic

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    J'essai de caster coté C# car je sais que je travaille avec des tableaux de double.
    J'ai vu qu'il était plus simple de passer mon variant en argument ce qui fait que j'ai coté Delphi
    MaFonction(mavar olevariant) dans laquelle je taille le variant et le rempli.

    Coté C#, j’appelle MaFonction(out toto) avec toto de type object.

    En Debug je m’aperçoit que ça passe, l'objet toto est bien taillé comme il faut mais quand je veux lire les valeurs (en mettant la souris sur le champs), j'ai des ? avec une icone sens interdit à coté...

    Je vais essayer de jouer avec le type dynamic...

  5. #5
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 442
    Points
    4 442
    Par défaut
    bonjour


    J'essai de caster coté C# car je sais que je travaille avec des tableaux de double.
    tu as fait la moitie du taf ...il faut ensuite, comme déjà dit ,caster le "object retourne" en un tableau de double si le OLE variant de Delphi est un tableau de double ....

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Ok j'ai trouvé d'ou venait le problème, tout venait du coté Delphi ou je créait un variant avec la fonction VarArrayCreate en lui définissant des bornes 1-basées.
    Or le C# n'a l'air de marcher qu'en zéro basé, d'ou le problème.
    Merci pour votre aide

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

Discussions similaires

  1. Le grand mode d'emploi du forum, à lire si vous souhaitez tout savoir !
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 03/06/2013, 17h36
  2. Réponses: 5
    Dernier message: 21/02/2007, 16h12
  3. Réponses: 5
    Dernier message: 20/08/2002, 18h01
  4. Lire 1 bit d'un fichier en C
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 23/05/2002, 18h31
  5. lire une image au format RAW
    Par Anonymous dans le forum OpenGL
    Réponses: 5
    Dernier message: 20/05/2002, 00h11

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