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 :

tableu de string & tableau de byte


Sujet :

API, COM et SDKs Delphi

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Par défaut tableu de string & tableau de byte
    Bonjour,

    J'ai un COM écrit un C#.
    J'appel une fonction avec les paramètres suivants :
    string[] sAttachmentsName, byte[][] oAttachments

    comment peut on à partir de Delphi 7 attaquer ses paramètres?
    Pour être plus clair, comment passe t-on des tableaux de string et de byte de Delphi vers C#.

    si vous avez un exemple, ça serai idéal.

    Merci.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 018
    Par défaut
    Pourquoi tu n'utilise pas l'importateur de bibliothèque de type pour qu'il importe la Définition de l'objet COM ?
    Ainsi tu auras le code de l'interface qui sera généré !

    En C#, un tableau c'est un vrai Tableau ? ou c'est un Vector déguisé ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Par défaut
    J'avais pensé à ça et j'ai fait un regasm de ma library, puis j'ai utilisé l'importateur de bibliothèque de type de delphi. et je ne trouve pas la définition de ma méthode. pourtant j'ai mis un attribut ComVisible à true sur ma classe et sur ma méthode.
    Du coup je l'attaque directement. ça marche pour les autres méthodes. Mais je ne sais pas comment on passe des "vrais" tableaux. surtout du type : string[] sAttachmentsName, byte[][] oAttachments en c#

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 018
    Par défaut
    Si tu ne la vois pas, c'est surement que le type tableau C# n'est pas compatible COM, est-ce un SafeArray ?

    Remplace donc cela par une Interface qui contiendra ces tableaux ... tu pourras mettres des propriétés tableaux plus facilement dedans,...

    Sinon, passe par un Variant, ...

    Tient, lis ces deux sujets
    Utilisation d'un COM Delphi Win32 avec VB ou C# .NET
    VBScript - Type incompatible avec COM créé en Delphi
    Ce parle surtout de l'échange d'interface, rien que cela déjà, il faut que la méthode soit toujours en SafeCall pour que cela fonctionne ... plein de subtilité ...

    On a eu sur le forum, un sujet proche du tient, avec un type C# incompatible, ah, je ne le retrouve pas !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Par défaut
    tu as raison je pense.
    aurais tu un exemple ?

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 018
    Par défaut
    Pas en C#, tu devrais demander conseil sur leur forum, pour savoir comment faire cela, pour info, je teste tous mes objets COM avec des VB Script, normalement, si ça passe avec, ça passera partout !

    Exemple d'Interface liste en delphi ... (extrait du code auto-généré lors de la création de la TLB), tu dois le faire en C#
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      IPatientList = interface(IDispatch)
        function Get_Count: LongWord; safecall;
        function Get_Item(Index: LongWord): IPatient; safecall;
        property Count: LongWord read Get_Count;
        property Item[Index: LongWord]: IPatient read Get_Item;
      end;
     
    IPatient = interface(IDispatch)
        function Get_Nom: WideString; safecall;
        procedure Set_Nom(const Value: WideString); safecall;
        function Get_Prenom: WideString; safecall;
        procedure Set_Prenom(const Value: WideString); safecall;
        property Nom: WideString read Get_Nom write Set_Nom;
        property Prenom: WideString read Get_Prenom write Set_Prenom;
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set ObjMain = CreateObject("Censured_COM.CensuredImpl")
    Set ObjPatient = CreateObject("Censured_COM.PatientImpl")
     
    ObjPatient.ID = "1"
    Set ObjRes = ObjMain.SearchPatientEx(ObjPatient)
    Set PatList = ObjMain.GetPatientList(ObjRes)
    Set ObjPatRes = PatList.Item(0) // oui oui, c'est bien le Item de l'interface IPatientList
     
    WScript.Echo ObjPatRes.Nom // idem, la propriété nom de l'interface IPatient
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Par défaut
    merci.

Discussions similaires

  1. convertir string en tableau de byte
    Par wolfazer dans le forum VB.NET
    Réponses: 3
    Dernier message: 29/10/2007, 08h15
  2. Conversion String en tableau de Byte
    Par riete dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 05/09/2007, 09h27
  3. Formater une string en tableau de byte
    Par lamoufle dans le forum C
    Réponses: 5
    Dernier message: 22/11/2006, 16h51
  4. Réponses: 2
    Dernier message: 10/06/2006, 13h46
  5. Réponses: 3
    Dernier message: 19/04/2006, 13h28

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