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++Builder Discussion :

Comment intégrer un programme Delphi dans CBuilder [Non suivi]


Sujet :

C++Builder

  1. #1
    Membre habitué
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Points : 136
    Points
    136
    Par défaut Comment intégrer un programme Delphi dans CBuilder
    Je voudrais intégrer un petit programme Delphi (qui appelle un DLL) dans mon application en CBuilder: je l'ai mis dans le projet evec compilation réussite, mais je ne sais pas comment accéder la fonction InstRockey dans le programme Delphi.
    Merci


    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
    16
    17
    18
    19
    unit InstDll;
     
    interface
    uses
      Windows;
    const
        INST_ERROR_SUCCESS		= 0;	//Success
        INST_ERROR_PARAMETER        = 1;	//Parameter error,check whether you use /i and /r at same time.
        INST_ERROR_COPYFILE		= 2;	//error when copying
        INST_ERROR_NTREGISTRY	= 3;	//error when open rigstry in WINNT,WIN2000,check whether you use Administrator to logged in the system.
        INST_ERROR_NTSTART		= 4;	//error when start the rockey device in Win NT/2000 ,restart your pc and try again.
        INST_ERROR_OPENINF		= 5;	//error when open usb inf file.
     
     
    function InstRockey(hOwnerWnd:HWND;plValue:PLongInt;pStrValue:LPSTR):LongInt;stdcall;external 'InstDll.Dll';
     
    implementation
     
    end.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Je crois que lorsque tu compiles du code Delphi avec C++ Builder celui-ci génère le .h (ou .hpp) qui correspond.
    Sinon tu le fais toi même : à partir du moment où le prototype correspond la compilation et surtout le linkage devrait s'effectuer sans problèmes !

  3. #3
    Membre habitué
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Points : 136
    Points
    136
    Par défaut
    Comme la compilation est réussite, il y a un exécutable sorti. Je ne sais pas comment accéder la fonction (quels paramètres à rentrer):

    function InstRockey(hOwnerWnd:HWND;plValueLongInt;pStrValue:LPSTR):LongInt;stdcall;external 'InstDll.Dll';

    Merci

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    tu veux accéder à la fonction d'un executable ?
    un peu comme une dll ?

    Si tel est le cas je ne suis pas tout à fait sûr que cela soit faisable, mais va voir du côté de LoadLibrary et surtout GetProcAddress de l'API Windows.

  5. #5
    Membre habitué
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Points : 136
    Points
    136
    Par défaut
    Excuse-moi, mon message était pas très claire. En fait, je voudrais accéder la fonction (quels paramètres à rentrer) InstRockey à partir du programme CBuilder du même projet. Merci

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Ben les paramètres tu les as dans la ligne en pascal, ou alors comme je te l'ais déjà dit tu regarder le fichier .h ou .hpp et tu auras la déclaration de la fonction en C++ et donc tu sauras quels sont les types de tes arguments.

    A priori je dirais que ça doit être quelque chose comme cela, à vérifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    long __import __stdcall InstRockey( HWND hOwnerWnd, long plValue, char* pStrValue);
    Oublie pas d'ajouter le fichier InstDll.lib à ton projet pour que ça compile.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/10/2007, 14h23
  2. comment intégrer une page html dans swf?
    Par jeanman dans le forum Intégration
    Réponses: 3
    Dernier message: 10/05/2006, 19h36
  3. Réponses: 2
    Dernier message: 31/03/2006, 16h48
  4. Réponses: 11
    Dernier message: 13/03/2006, 17h51
  5. Réponses: 5
    Dernier message: 16/07/2005, 00h01

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