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

MFC Discussion :

Utiliser Dll Delphi


Sujet :

MFC

  1. #1
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut Utiliser Dll Delphi


    J'ai Vs.Net 2003 et je voudrais faire une petite appli en C++ qui utilise une fonction d'une dll compilée avec Delphi. Comment dois-je faire ? ( j'ai moi même fait la dll Delphi mais je ne sais pas comment faire de LIB )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dll Delphi
     
    function BuildKernel ( SrcScript,OutExe : PChar ; CallBack : Pointer) : LongBool;stdcall;
     
    *note callBack est une pointer vers une procédure
    Merci d'avance

  2. #2
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 887
    Points : 1 531
    Points
    1 531
    Par défaut
    Pour transformer le .lib Borland en Visual, il faut utiliser ça:

    http://greybird.developpez.com/fichiers/Omf2Coff.exe

    Ca marche pour Visual 6, par contre je ne sais pas si ça marche pour .NET. Tiens-nous au courant, ça peut être utile.

  3. #3
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    " Le composant requis "vcl60.bpl" est introuvable ". J'ai Delphi 7 je ne dispose donc pas de vcl60.bpl ... comment pourrais-je avoir ce fichier ?

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    aucune réponse ? je ne peux pourtant pas utiliser Omf2COff

  5. #5
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 887
    Points : 1 531
    Points
    1 531
    Par défaut
    Ces BPL font partie des composants "REDIST", donc a priori libres de droits et téléchargeables sur le net. Une courte recherche sur m'a permi d'en trouver deux ou trois, par exemple, au hasard:

    http://www.sweb.cz/rosisoft/download.html

    J'ai pas testé si celui-ci en particulier marche, mais il y en a des dizaines d'autres.

  6. #6
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    je crée ( avec Omf2COFF ) un fichier lib donc
    CompileFile convetion:stdcall nb d'args:4

    mais je n'arrive toujours pas à l'utiliser dans VS.Net 2003

    On pourrait m'aider please

  7. #7
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    Il te faut convertir ta déclarations Delphi en C/C++ (créer un .h).

  8. #8
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    je l'ai fait !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Main.h
     
    extern "C"
    {
            //j'ai aussi essayé BuildKernel ( sans _ )
    	BOOL __stdcall _BuildKernel ( LPSTR SrcScript ,
    								 LPSTR OutExe ,
    								 void *CallBack );
    }
    et pour l'appel
    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
    20
    21
    22
    23
    24
    25
     
    #include <windows.h>
    #include "main.h"
     
     
    /*
    Delphi funcs :
    function BuildKernel ( SrcScript,OutExe : PChar ; CallBack : Pointer) : LongBool;stdcall;
    C++ func :
    	BOOL __stdcall BuildKernel ( LPSTR SrcScript ,
    								 LPSTR OutExe ,
    								 void *CallBack );
    */
     
    void ShowMessage(LPTSTR Msg)
    {
    	MessageBox(0,Msg,"InstallWIz",0);
    }
     
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
       LPSTR lpCmdLine, int nCmdShow)
    {	
    	ShowMessage("Appel TRES simple");
    	_BuildKernel("K","k",NULL);
    }
    et dans les otpions de Vs, je met dans l'onglet
    Editeur de liens>Entrée>Dépendances suplémentaires

    iic.lib

    mais le lieur me met :
    référence externe non résolue

    là, je suis vraiment laisé !

  9. #9
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    Si tu regardes ta dll avec dependency walker, c'est quoi le nom de la fonction ?

  10. #10
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    j'ai essayé de mettre comme nom dans le fichier .h BuildKernel et _BuildKernel et de l'appeler par le même nom ( BuildKernel et _BuildKernel ) mais sans succès

Discussions similaires

  1. Utiliser une DLL Delphi avec C#
    Par h8ciz dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/09/2007, 17h46
  2. Réponses: 1
    Dernier message: 18/07/2006, 17h44
  3. Réponses: 4
    Dernier message: 28/04/2006, 16h37
  4. DLL Delphi utilisée sous VB.NET
    Par slimjoe dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2006, 01h12
  5. Réponses: 2
    Dernier message: 21/03/2002, 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