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 :

communication entre un projet DLL et une application


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 78
    Points : 18
    Points
    18
    Par défaut communication entre un projet DLL et une application
    bonjour tt le monde jai un peti programmeur! jai un bouton qui permet d'ouvrir un opendialog pour choisir un fichier et jai une combobox et jai afficher le chemin ke jai specifier avek lopendialog cest a dire jai recuperer le chemin et je lai afficher dan ma conbobox! jai fai 2 projet qui sont reuni dan un groupe de projet ! jai un projet DLL et une application ! je ve recuperer la chaine de caratere ke jai afficher dan ma conbobox pour la communiquer a mon projet DLL ! ce but de faire est de pouvoir partager cette chaine de caratere parse ke ensuite je v faire communiker ma DLL avek visual basic mai sa sera dan un 2eme temps ! comment je doi faire pour donner ma chaine de caractere a ma DLL?? cest urgent merci pour tout renseignement ! cest urgent mes amis
    PROJET EXECUTABLE
    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
     /********************************************************/
    /*      Fonction permettant d'ouvrir Opendialog         */
    /********************************************************/
    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
     
     if(OpenDialog1->Execute())
     {
         ComboBox1->Items->Add(OpenDialog1->FileName);
         //ListBox1->Items->Add(OpenDialog1->FileName);
     }
     
    }
     
    void __fastcall TForm2::ComboBox1Change(TObject *Sender)
    {
     
    }
    //------------------------------------------------------------------------

    PROJET DLL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     /********************* Include ***************************/
    #include <clx.h>
    #include <windows.h>
    #include "ExecutableFrm.h"
    #include "Saisie.h"
    #pragma argsused
     
    /********************** Point d'entré de la DLL **********/
    int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
    {
            return 1;
    }

  2. #2
    Membre actif Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 201
    Points
    201
    Par défaut
    Bonjour Jules,

    Si j'ai bien compris tu veux mettre la DLL comme intermédiaire entre deux applications?

    Application1 <-> DLL <-> Application2

    La façon dont tu le décris me parait impossible.
    Il faut considérer que la DLL est une extension de ton application.
    C'est à dire que dans une DLL tu réunis des fonctions que tu as très peu envie de faire évoluer tout en les partageant entre plusieurs applications.
    Exemple tu fais une fonction de calcul de matrice: elle peut être utile dans plusieurs projets alorts tu la mets dans une DLL. Et chaque projet peut y faire appel.

    Pour ce qui est de passer des paramètres à la DLL:
    Attention les DLL n'aime pas communiquer par AnsiString!
    Tu dois, dans la DLL, faire une fonction qui attend ce paramètre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     void __fastcall Nom_Fonction (char *MyStr)
    {
    //Code de la fonction
    }
    Ensuite tu crée un fichier ".h" pour exporter cette fonction (je ne me rapelles plus du code et Builder est au boulot)

    Dans ton application1, là ou tu veux transmettre ton nom de fichier, tu mets:
    Nom_Fonction(ComboBox1->Text.c_str());


    Pour faire communiquer les deux applications tu peux utiliser une connexion réseau. Cela nécessite que le PC soit connecté à un réseau ou à Internet lorsque les deux applications s'exécutent.

    Cela fait longtemps que je réfléchis à faire communiquer deux applications sans connexion réseau car j'ai des cas de ce type d'utilisation à dévelloper... La seule solution que j'ai trouvé c'est de créer deux répertoire de communication (un TX et un RX)
    Dans le premier la première application dépose un fichier.
    Avec un Timer la seconde application scrute ce répertoire. Et répond si nécessaire à la demande en utilisant le même nom de fichier dans le second répertoire avec le même principe de scrutation pour la seconde application. Il est possible de faire la même chose en jouant uniquement sur l'extension des fichiers.

    Dans la pages sources j'ai trouvé ceci:

    http://c.developpez.com/sources/bcb/...filemappingchr

    Je penses que cela peut être utile pour ce que tu cherches à faire.

    Mattetfamilly.

  3. #3
    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
    Citation Envoyé par ferry.jules
    ce but de faire est de pouvoir partager cette chaine de caratere parse ke ensuite je v faire communiker ma DLL avek visual basic mai sa sera dan un 2eme temps ! comment je doi faire pour donner ma chaine de caractere a ma DLL??
    Je me permet de te faire remarquer que tu es sur un forum et non sur ton téléphone portable . Les règles du forum imposent à tout le monde un français un minimum correct et je pense que le texte ci-dessus n'en fait pas parti. Je te demanderais donc pour tes prochains post de faire un petit effort : ça permettra aux autres forumeurs de mieux lire ton texte, de mieux te comprendre et donc de mieux te répondre.

    Citation Envoyé par ferry.jules
    cest urgent merci pour tout renseignement ! cest urgent mes amis
    Bien que tu puisses être pris par des contraintes de temps cela n'accélérera pas les réponses : les gens répondent quand ils ont une réponse et le temps d'y répondre. A l'avenir évite donc les "c'est urgent". Merci beaucoup.

    Pour ton problème je te conseille avant toute chose de lire un des nombreux tutoriels sur l'utilisation des DLL dans un projet C++ Builder.

    Bon courage !

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    Citation Envoyé par Mattetfamilly
    Pour ce qui est de passer des paramètres à la DLL:
    Attention les DLL n'aime pas communiquer par AnsiString!
    Tu dois, dans la DLL, faire une fonction qui attend ce paramètre.
    void __fastcall Nom_Fonction (char *MyStr)
    {
    //Code de la fonction
    }
    Pourquoi est-ce que les DLL n'aime pas communiquer par AnsiString ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 78
    Points : 18
    Points
    18
    Par défaut
    ben moi personnelement jaimerai seulement que le chemin que jai specifier et que jai recueper dans ma conbobox soit donner a ma dll ensuite je verrai comment je vais faire pour pouvoir recuperer cette chaine de caractere de ma dll vers excel ! pour linstan mon probleme cest de recuperer cette chaine de caractere !

  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
    Je répète...lit un tutoriel...
    Ce n'est pas pour être méchant mais ce serait vraiment un bon début...

    EDIT : Notre ami ferry.jules n'a pas trop apprécié ma réponse. Je viens de relire le thread et je trouve que la réponse que tu as eu de Mattetfamilly est très bonne. Si tu bloque dans sa mise en oeuvre dit le, mais explique précisement ton problème.

    EDIT :
    Citation Envoyé par swirtel
    Pourquoi est-ce que les DLL n'aime pas communiquer par AnsiString ?
    Une DLL peut communiquer par des AnsiString...mais si tu crée un projet DLL dans le fichier crée automatiquement (celui avec la fonction WinEntry ou quelque chose comme cela) tu aura une petite explication made in Borland).

    En fait pour commencer l'AnsiString est propre à Borland...or le principe d'une DLL est entre autre de pouvoir être utilisée par d'autres programme. Utiliser les AnsiString empêche toute personne n'utilisant pas les outils Borland à développer avec ta DLL.
    Ensuite si tu utilises les AnsiString dans les DLL il faudra distribuer avec ton projet la dll borlandmm.dll (ou quelque chose comme cela).

    C'est à peu près tout ce dont je me souviens de l'explication de Borland.

  7. #7
    Membre actif Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 201
    Points
    201
    Par défaut DLL en intermédiaire entre ton appli et excel
    Bonsoir Jules,

    Je ne l'avais vraiment pas envisager comme cela...

    En effet, tu peux faire communiquer ton appli avec excel en utilisant une DLL.

    Comment souhaites tu utiliser cette information dans excel?

    Et quelle difficulté rencontres tu lorsque tu exportes?

    Eventuellement, ce que j'ai déjà fait avec une DLL...
    Tu peux envoyer le chemin en le mettant dans une TStringList.
    Ta TStringList ne comporte qu'une ligne mais c'est plus facile à l'envoyer dans la DLL qui n'aime pas travailler avec une AnsiString et qui pour moi n'est pâs évidente pour envoyer une châine tout simplement.
    Me demande pas pourquoi il supporte la TStringlist et pas l'AnsiString...

    En revanche pour ce qui est de transmettre le chemin ensuite dans excel: il y a longtemps que je n'ai pas fait cela.
    Si c'est pour le mettre dans une cellule de excel c'est tout simple et cela doit être comme pour ton entier.

    Je rapporterais un bout de source du boulot demain pour la TStringList si tu veux.

    Mattetfamilly

  8. #8
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    Neilos, tu as tout à fait raison, j'utilise borland quotidiennement afin de créer une DLL utilisable par outils créés avec Delphi.

    Bien qu'effectivement le char * est à préconiser, dans un environnement pûr Borland, c'est une nette amélioration d'employer AnsiString.

    Par contre, niveau portabilité effectivement c'est de la merde.

    Il y a moyen de trouver le source d'AnsiString pour pouvoir créer des Bindings pour d'autres langages ou d'autres compilateurs.

  9. #9
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Une solution envisageable uniquement sous Windows (mais puisque c'est pour Excel), et seulement si les applis fonctionnent en même temps : les FileMapping de Windows, je crois qu'il y a un exemple ici http://c.developpez.com/sources/bcb/?page=communication

  10. #10
    Membre actif
    Avatar de lanonyme
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 229
    Points : 290
    Points
    290
    Par défaut Remarque
    Bonjour,
    juste comme remarque.

    Ne serai pas t'il plus simple, pour une communication appli-excel d'utiliser une liaison DDE ?

    Enfin, moi je dis ça, mais je dis rien

    lanonyme

  11. #11
    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
    Citation Envoyé par lanonyme
    Bonjour,
    juste comme remarque.

    Ne serai pas t'il plus simple, pour une communication appli-excel d'utiliser une liaison DDE ?

    Enfin, moi je dis ça, mais je dis rien

    lanonyme
    C'est ce que je pense aussi, mais comme il semblait tenir à sa DLL, je me suis dit qu'il avait une bonne raison.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 78
    Points : 18
    Points
    18
    Par défaut
    bonjour tout le monde
    A partir d'excel j'etabli une chaine de caractere par exemple "C:\Documents and Settings\Moh\Bureau\stage\Projet\090506\version3\exe_dll\dll.dll" qui sera donner a ma dll Ensuite le but du jeu sera que ma DLL ouvre TForm1 de mon application et prenne cette chaine de caractere pour lafficher a l'emplacement de la combobox.

  13. #13
    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
    Bref c'est Excel qui lance le tout et pas ton application ?
    Pourquoi ne pas mettre directement le TForm dans ta DLL ?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 78
    Points : 18
    Points
    18
    Par défaut
    oui en effet sa sera excel qui lancera mon application ! maintenant pourquoi ne pas mettre mon TForm dans ma dll personnellement je ne suis pas sur de ma reponse donc je prefere en parler avec la personne en question je pourrai te repondre demain si tu le desire.

  15. #15
    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
    Bah en fait c'est juste pour être sûr que tu te compliques pas la vie plus que nécessaire

  16. #16
    Membre actif Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 201
    Points
    201
    Par défaut Qui communiques avec qui?
    Bonjour Jules,

    J'ai oublié mon code au boulot:
    Mais à la lecture de tes posts suivants je ne suis plus sûr que cela soit ce dont tu as besoinµ.

    Peux tu re préciser le fonctionnement de tes applis?
    Lors de mon 1er message, j'avais compris que ton aplli C++ Builder utilisait une DLL qui transmet des informations à excel.

    Aujourd'hui, si je comprends bien:
    Sous excel tu récupéres des information que tu exploites avec Visual Basic (que tu ne maîtrises pas bien) VB doit alors transmettre une chaîne de caractères à une DLL qui exécute alors une application que tu as créé sous Builder C++.

    Si ce que j'ai compris aujourd'hui est vrai, ce que je peux te dire:
    je ne maîtrises pas non plus VB (ce n'est pas le bon forum à mon avis)
    Je ne sais donc pas comment de VB tu vas exécuter une fonction de la DLL.
    en revanche dans ta DLL, je sais comment tu vas transmettre ta chaîne ainsi que comment la récupérer dans ton application:


    Dans ta DLL
    ta fonction reste comme je l'ai dit plus tôt mais le code est du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     void __fastcall Nom_Fonction (char *MyStr)
    {
    //Code de la fonction
    ShellExecute (Handle,"open","C:\\monprog.exe",My*Str,0,SW_NORMAL);
    }

    Ce code exécute ton application en lui passant pour pramètre la chaîne que tu as envoyé à la fonction.

    Dans ton application:
    Dans l'évènement "OnCreate" de la fiche qui doit exploiter l'information ou bien dans l'évènement "OnCreate" de la fiche principale, tu récupéres le paramètre avec les codes suivant ParamStr(index) et ParamCount.
    Normalement ta chaîne de caractère se trouve dans ParamStr(0) ou ParamStr(1) (je ne sais plus quel est l'indice du premier élément: vérifies l'aide en ligne ou test).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     AnsiString MonChemin;
    MonChemin= ParamStr(0);
    ComboBox1->Items->Add(MonChemin);
    Si ton chemin n'a pas une structure correct (exemple: il contient des ' ' : espace) avec la fonction ParamCount tu récupéres la totalité de ton chemin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     AnsiString MonChemin;
    int i_bcl_recup;
     
    for(MonChemin="";i_bcl_recup=0;i_bcl_recup<ParamCount;i_bcl_recup++)
    MonChemin= MonChemin + ParamStr(i_bcl_recup);
     
    ComboBox1->Items->Add(MonChemin);

    Voilà, je penses avoir fait le tour de ce que je pouvais par rapport à ce que j'ai compris.

    Mattetfamilly.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 78
    Points : 18
    Points
    18
    Par défaut
    il y a trois application :
    premierement il y a excel sous visual basic je doi donner une chaine de caractere par exemple "C:\Documents and Settings\Moh\Bureau\stage" a mon projet DLL qui contient une dll ! voila ce que jai pu commencer a faire sur VB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Private Declare Function MaFonction_chemin Lib "C:\Documents and Settings\U228167\Desktop\mohamed\Projet\060510\version2\exe_dll\Dll.dll" (ByVal myVar As String) As String
     
     
    Private Sub CommandButton1_Click()
     
        Dim myVar As String
        MsgBox ("post affectation chemin")
        myVar = "C:\Documents and Settings\Moh\Bureau\stage\Projet\070506\version1\exe_dll\Dll.dll"
        MsgBox ("pre affectation chemin")
        MsgBox (myVar)
        MaFonction_chemin myVar
        MsgBox (myVar)
     
    End Sub
    Ensuite deuxiement il y a un projet DLL qui contient une dll ! a partir de cette dll je doi recuperer la chaine de caractere, faire ouvrir mon projet executable qui contient une application !

    Enfin jai un projet EXECUTABLE qui contient une application qui devra recuperer la chaine de caractere que la dll maura donner et de la lafficher dans ma conbobox ou autres quoi ! la dll et lexecutable sont reunis dans un gestionnaitre de projet

  18. #18
    Membre actif Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 201
    Points
    201
    Par défaut De la DDL vers l'appli
    Re bonsoir Jules,

    Oui quelques autres questions:
    1) L'application indépendante de la DLL contient Form1 et Form2?


    2) Je vais peut-être paraître lourd, mais que doit faire l'application: afficher un fichier ou renvoyer le contenu de ce fichier? Si j'ai bien compris, VB te fournit un nom de répertoire, via la DLL tu le confies à ton application qui exécute une boîte d'ouverture de fichier qui doit afficher le contenu du répertoire. De cette boite de fichier tu affiches le contenu du fichier. Qu'est ce que la fonction de l'application : recupere_chemin(char * variable) doit renvoyer? Le contenu du fichier?
    Je ne sais pas comment l'application peut renvoyer à la DLL quelque chose comme par exemple le contenu du fichier mais si tu mets ta Form2 avec l'OpenDialog dans la DLL ce sera possible.

    Si j'ai bien compris:
    je constates que tu n'as pas encore récupérer le chemin envoyé à ton application. Mais si Form2 fait partie de l'application et non de la DLL alors il faut que tu cré un protocole de communication pour dire à l'application ce que tu attends d'elle avec les éléments que tu lui transmet en gros quelle fonction elle doit exécuter avec les arguments que tu lui envoie.

    Pour charger le Memo1 avec le contenu du fichier, il existe une fonction qui me semble plus simplifiée:
    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
    26
    27
    28
    29
    30
     Memo1->Lines->LoadFromFile(Nom_du_fichier_chemin_compris);
     
     
    void __fastcall TForm2::Button1Click(TObject *Sender)
    {
    AnsiString MonChemin;
    MonChemin= ParamStr(0);
    recupere_chemin(MonChemin.c_str());
    }
     
     
    char TForm2::recupere_chemin(char * variable)
    {
    OpenDialog1->InitialDir=AnsiString(variable);
    if(OpenDialog1->Execute())
    {
    //Effacement du texte auparavant
    ListBox1->Clear();
    // recuperationn du chemin et affichage de celui ci
    ListBox1->Items->Add(OpenDialog1->FileName);
    //affichage du fichier dans le memo
    Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
    // affichage de l'heure et de la date de l'ouverture du fichier
    Label1->Caption = DateToStr(Date());
    Label2->Caption = TimeToStr(Time());
    return Memo1->Lines->Text.c_str(); //Renvoie le contenu du fichier
    }
     
    return *variable;
    }
    Mattetfamilly

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 78
    Points : 18
    Points
    18
    Par défaut communication entre un projet dll et une application
    oui effectivement mon application contient Form1 qui apel Form2 ce
    systeme fonctionne bien ! justement la fonction de l'application : recupere_chemin(char * variable) nest qu'une fonction que jai mis en place pour pouvoir recuperer
    le chemin et lafficher dans le memo. je recupere deja le nom du fichier via lopendialog qui ensuite affiche le contenu du fichier ! effectivement je nai pas encore recuperer le chemin que la dll doi me fournir ! je sai pa comment je doi faire ! voila pour tes questions si ten
    a dotre nhesite surtout pas ! je v essayer ce que tu vien de me donner comme code et comme conseils !merci !

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 78
    Points : 18
    Points
    18
    Par défaut passage de parametre entre une dll et une application
    jai deux projet dans un gestionnaire de projet ! le premiere cest une application et le deuxieme cest une dll ! jaimerai que ma dll ouvre mon application cest a dire Form1 qui lui donne le parametre qui est en faite une chaine de caractere ! (au faite jai Form1 qui ouvre Form2 dans mon application) ma dll donnera le parametre a Form1 ensuite FOrm1 ouvrira Form2 et lui donnera aussi le parametre enfin ce parametre devra safficher dans une conbobox est il possible de le faire ?? le raisonnement est il bon ??

    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
    26
    27
    28
     
    /******************** Include ***************************/
    #include <clx.h>
    #include <windows.h>
    #include "ExecutableFrm.h"
    #include "Saisie.h"
    #include <string.h>
     
    const MaxBufferSize = 255;
    extern "C" __declspec(dllexport) char * __stdcall MaFonction_chemin(char *myVar);
    #pragma argsused
     
     
    /********************** Point d'entré de la DLL **********/
    int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
    {
    return 1;
    }
     
    char * __stdcall MaFonction_chemin(char *myVar)
    {
    char Buffer[MaxBufferSize];
    ZeroMemory(Buffer,MaxBufferSize);
    if (strlen(myVar) > MaxBufferSize ) return "";
    strcpy(Buffer,myVar);
    strcpy(myVar,Buffer);
    return myVar;
    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. Communication entre un plugin web et une application
    Par justfab dans le forum Autres langages pour le Web
    Réponses: 0
    Dernier message: 25/04/2014, 17h28
  2. Réponses: 7
    Dernier message: 12/08/2010, 11h40
  3. Communication entre 2 projets dans une même solution
    Par Alex972 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 30/03/2009, 04h35
  4. Utilisation d'une dll dans une application.
    Par jamais34 dans le forum MFC
    Réponses: 5
    Dernier message: 31/03/2006, 10h39
  5. [C#]Communication entre 2 Projets????
    Par Verboz dans le forum ASP.NET
    Réponses: 17
    Dernier message: 23/08/2005, 22h01

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