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

Delphi Discussion :

utiliser des classes C++ en delphi


Sujet :

Delphi

  1. #1
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut utiliser des classes C++ en delphi
    J'ai des classes développées en C++. J'aimerai pouvoir utiliser des objets issues de ces classes depuis Delphi. Est-ce possible et comment ?
    Si j'ai bien compris, même si je tranforme mes classes cpp en DLL, ce ne sera pas possible de les utiliser avec Delphi (à cause de la conception objet qui est différente).

    Y-a-t-il quand même d'autres moyen pour y arriver ?


  2. #2
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    slt

    Si j'ai bien compris, même si je tranforme mes classes cpp en DLL, ce ne sera pas possible de les utiliser avec Delphi (à cause de la conception objet qui est différente).
    Ah bon ben moi j'ai fais l'inverse et ca marche (Delphi vers C++)... le seul petit truc c'est qu'il faut faire attention au type des données échangées...

  3. #3
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Est-ce que ca signifie que je dois créer une interface en Delphi (comme dans ce tuto http://delphi.developpez.com/cours/dll/ (mais avec une dll en C++)) en redéclarant la classe et toutes les fonctions de cette classe en faisant gaffe au type utilisé (puis-je me contenter que de celle que j'utilise réellement) ou bien c'est beaucoup plus compliqué que cela (ca me parâit déjà bien compliqué) ?

  4. #4
    Membre éprouvé
    Avatar de octal
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 441
    Points : 959
    Points
    959
    Par défaut
    Non, il est impossible d'utiliser des classe C++ dans Delphi, meme en les mettant dans une DLL tu ne pourra les instancier. Si cela été possible cela aurait réglait un gros gros probleme pour les developpeurs.... (prob que seul .NET a su résoudre).
    La seule solution est d'écrire une DLL qui instancie tes classes et qui expose des procedure/fonctions simples qui elles en intrene crée des instances de classes C++. Ces procedure sont communément appelées WRAPPER de classes, et c'ets la seule technique utilisée par tous les kit de developpement permettant à différent langages d'accéder à des librairies de classes C++. C'est aussi la technique qui a été utilisée par BORLAND pour interfacer Delphi avec la librairie graphiques QT (pour avoir la CLX) qui elle (QT) est écrite en C++.

    Bonne chance

  5. #5
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    En fait, j'ai résolu mon problème en utilisant les objets COM (je n'avais pas vu que mes classes qu'on me fournissaient étaient également disponible dans des dlls COM). Donc l'interface Delphi est créé automatiquement.
    Et c'est maintenant beaucoup plus simple d'utilisation. Je n'ai pas encore commencé le projet mais je pense que le plus dur est fait maintenant.

  6. #6
    Membre confirmé
    Avatar de Philippe Gormand
    Inscrit en
    Mars 2002
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 330
    Points : 647
    Points
    647
    Par défaut
    En compilant les fichiers C++ en .obj, tu peux directement les inclure dans ton projet DELPHI.
    De plus DELPHI est aussi capable de compiler des unités en .obj vers C++.
    Il serait interresant de faire l'essai C++ -> .obj -> DELPHI. Petite remarque. Tous les fichiers de compression/decompression JPEG fournit avec delphi ont été écrit en C++. Ce sont des .obj interfacés en PASCAL.


    A+

  7. #7
    Membre éprouvé
    Avatar de octal
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 441
    Points : 959
    Points
    959
    Par défaut
    Citation Envoyé par Philippe Gormand
    En compilant les fichiers C++ en .obj, tu peux directement les inclure dans ton projet DELPHI.
    De plus DELPHI est aussi capable de compiler des unités en .obj vers C++.
    Il serait interresant de faire l'essai C++ -> .obj -> DELPHI. Petite remarque. Tous les fichiers de compression/decompression JPEG fournit avec delphi ont été écrit en C++. Ce sont des .obj interfacés en PASCAL.


    A+
    il est IMPOSSIBLE meme en passant par les OBJ d'instancier des classes C++ en Delphi ... le format interne de la VMT est complètement différent. Borland propose une bricole pour récupérer les classes Pascal en C++, ce qui permet d'utiliser notement la VCL dans BC++ mais pas l'inverse. le seul moyen c'est les procedure WRAPPER ... aucun autre moyen ...

Discussions similaires

  1. Utilisation de class java sous delphi?
    Par loloryan dans le forum Delphi
    Réponses: 1
    Dernier message: 09/11/2006, 21h20
  2. Réponses: 2
    Dernier message: 31/10/2006, 17h29
  3. [D2005]Comment utiliser des assembly développées en delphi
    Par Valéry dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 16/08/2005, 19h36
  4. utiliser des classes dont on n'a pas le source
    Par kocin dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/08/2004, 17h05

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