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 :

Wrapper pour Delphi


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Par défaut Wrapper pour Delphi
    Bonjour tlm,

    J'ai une API dévéloppée en VC++ 6. Est ce que c'est possible de construire un wrapper delphi pour utiliser cette API dans un evironnement delphi?

    J'y connais presque rien en delphi. Qu'est ce que je dois prendre en considération pour construire ce wrapper?

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    c'est simple, Delphi ne supporte pas les objets c++

    c'est le seul cas où il faut un wrapper.

    par exemple Gnome qui n'utilise qu'une API C est supporté par Delphi alors que QT qui s'appuie sur des objets C++ nécessite un Wrapper.

    le principe du wrapper est simple, toute les méthodes de l'objet sont passées dans des fonctions dont le premier paramètre est l'instance de l'objet. Il faut notamment prévoir un constructeur et un destructeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // désolé pour les erreurs C++ :)
    int Create_MyObject() {
     return New MyObject();
    }
    int MyObject_Method1(MyObject * instance, int parm) {
     return instance->Method1(parm);
    }
    void Destroy_MyObject(MyObject * instance) {
     // je ne sais plus comment on détruit un objet en C++ !
    }
    du côté Delphi l'objet sera traité comme un Handle générique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function Create_MyObject:THandle; stdcall; external 'wrapper.dll';
    function MyObject_Method1(Handle:THandle; parm:integer):integer; stdcall;  external 'wrapper.dll';
    procedure Destroy_MyObject(Handle:THandle); stdcall; external 'wrapper.dll';
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Besoin de routines ASM optimisées pour Delphi
    Par John Fullspeed dans le forum x86 32-bits / 64-bits
    Réponses: 11
    Dernier message: 08/12/2004, 21h00
  2. SGBD pour Delphi 5
    Par chtom dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/11/2004, 15h13
  3. Version de Windows pour Delphi 8
    Par alainvh dans le forum EDI
    Réponses: 8
    Dernier message: 22/06/2004, 11h37
  4. Réponses: 2
    Dernier message: 18/09/2003, 13h46
  5. [Kylix] CLX pour Delphi 6 ?
    Par amelie gaya dans le forum EDI
    Réponses: 2
    Dernier message: 24/05/2002, 09h12

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