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 :

Passage de paramètres avec DLL Delphi


Sujet :

C#

  1. #1
    Candidat au Club
    Inscrit en
    Février 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Passage de paramètres avec DLL Delphi
    Bonjour,

    Dans un projet C# 2.0, j'utilise une DLL Delphi qui realise des operations sur des objets métiers.

    Je charge ma DLL sans problème, et j'arrive à utiliser quelques-unes des methodes de cette DLL.

    Mon problème est le suivant:

    une des methodes me renvoie un pointeur sur le premier élément d'une liste chainée de structures. Et je ne sais pas trop comment récupérer cela

    En gros, dans ma DLL Delphi, j'ai le type suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Type
     
      PPDataDescription = ^PDataDescription;
      PDataDescription = ^DataDescription;
      DataDescription = packed record
          ID: Cardinal;
          Name: PChar;
          Info: PChar;
          Next: PDataDescription;
      End;
    Et la methode dans la DLL Delphi a le prototype suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function MyObject.GetDataDescriptionList(tabDataDescription: PPDataDescription): Cardinal;
    Une idée pour que je récupère un tableau de structure (ou de classe) en C# lors de l'appel de cette methode ?

  2. #2
    Candidat au Club
    Inscrit en
    Février 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Et bien, pas un gros succès ma question ...

    Si ça peut aider, voici comment l'ancienne application C/Win32, dont je fais le portage en C# 2.0, utilisait cette DLL.

    Pour la structure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #pragma pack(1)
     
    typedef struct _DataDescription {
      unsigned long int ID;
      char * Name;
      char * Info;
      struct _DataDescription * Next;
    } DataDescription, *PDataDescription;
    Appel de la methode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {
      PDataDescription tabDataDescription;
     
      GetDataDescriptionList(&tabDataDescription);
    }

  3. #3
    Candidat au Club
    Inscrit en
    Février 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bon et bien en utilisant les [StructLayout(LayoutKind.Sequential)] et un peu de MarshalAs, ça fonctionne

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

Discussions similaires

  1. Passage de Paramètres avec DLL C++
    Par Nico28 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/05/2012, 09h48
  2. Pb de passage de paramètre avec une dll
    Par fcrd03 dans le forum LabVIEW
    Réponses: 3
    Dernier message: 23/07/2011, 12h05
  3. Passage de paramètres avec Redirect
    Par abir84 dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 24/09/2007, 10h51
  4. Réponses: 5
    Dernier message: 01/03/2007, 17h19
  5. Passage de paramètre avec POST
    Par boulette85 dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2007, 20h59

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