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. #61
    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
    en faite ma dll recupere un chemin d'un fichier ! ma dll ouvre mon application avec ShellExecute ! dans cette fonction le 4eme parametre permet de donner une chaine de caractere au programme apeler ! en loccurrence mon executable recevra une chaine de caractere ! donc japel mon application qui inclu 2Form ! Form1 apel Form2 ( ou si tu veu Form1 ouvre Form2 ) ! donc dans l'evenement de Form1 dés que Form1 s'ouvre je lui donne cette chaine de caractere ! cette chaine caractere est "MonChemin" ! MonChemin est afficher dans une conbobox de la Form2 jusqu ici il ny a pa de probleme ! maintenant le probleme cest d'interpreter cette chaine de caractere ! je veux prendre cette chaine de caractere pour afficher le contenu du fichier ! laffichage se fera dans un memo ou autre si il y a une solution meilleur je suis ouvert ! memo et la conbobox appartient a Form2 !
    dou la ligne de code suivante qui est dans void __fastcall TForm1::FormShow(TObject *Sender):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form2->Memo1->Lines->LoadFromFile(ComboBox1->Text);
    mais cela ne fonctionne pas pour tout type de fichiers ! jai essayer aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form2->Memo1->Lines->LoadFromFile(MonChemin);
    jaimerai bien finaliser cette affichage ! si quelqu'un a une question quelquel soit qui la pose ! peu etre que cela avancera les chose !

  2. #62
    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
    Bonjour,
    Citation Envoyé par ferry.jules
    maintenant le probleme cest d'interpreter cette chaine de caractere ! je veux prendre cette chaine de caractere pour afficher le contenu du fichier !
    Si tu affiche correctement MonChemin dans ta combobox, c'est quelle est deja interpreter ?

    Citation Envoyé par ferry.jules
    memo et la conbobox appartient a Form2
    Dans ce cas la, je te conseillerai de mettre le code suivant dans le FormShow de ta Form2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Memo1->Lines->LoadFromFile(ComboBox1->Text);
    En ce qui concerne, l'affichage de tout type de fichier dans le memo, je te conseille d'ouvrir une nouvelle discussion avec un titre plus explicite.
    Et avant d'essayer de faire une recherche sur le forum.
    Personnellement, je ne voit qu'un affichage en héxadecimal.

    lanonyme

  3. #63
    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 elle ai afficher dans ma conbobox donc effectivement elle ai interpreter !
    personnelement jai essayer de mettre ta ligne de code suivante dans levenement FormShow de ma Form2 avant que me le dize:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Memo1->Lines->LoadFromFile(ComboBox1->Text);
    et cela ne fonctionne pas il mouvre une boite derreur comme celle precedenmant !

  4. #64
    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
    Pourrai tu me dire ce que contient ta combobox à l'appel de la fonction LoadFromFile.

    Par Exemple avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ShowMessage(ComboBox1->Text) ;
    Memo1->Lines->LoadFromFile(ComboBox1->Text);
    EDIT:
    J'ai tester si le chemin est correct dans ta combobox, ca fonctionner.
    Que cela soit "C:\toto.txt" ou C:\\toto.txt"

    lanonyme

  5. #65
    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
    donc en mettant les lignes de code que tu ma donner precedemment il y a plus ieur cas :
    1-quand je met les 2commandes dans FormShow de Form1 cela ne compil pas ! je met la deuxieme ligne en commentaire la cela marche (memo1.....) !
    jobtient la chaine de caractere dans la boite !

    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
     
    void __fastcall TForm1::FormShow(TObject *Sender)
    {
            AnsiString MonChemin;
            int i_bcl_recup;
            Form2->Edit1->Clear();
            Form2->ComboBox1->Clear();
            Form2->Memo1->Clear();
     
     
            ShowMessage(ComboBox1->Text) ;
            //jobtient une erreur me disan que conbobox nest pa defini ! normal  !
     
            for(MonChemin="",i_bcl_recup=1;i_bcl_recup<=ParamCount();i_bcl_recup++)
                    MonChemin= MonChemin + ParamStr(i_bcl_recup);
     
            if(FileExists(MonChemin))
            {
                    Form2->ComboBox1->Text=MonChemin;
                    Form2->Memo1->Text=MonChemin;
                    //Memo1->Lines->LoadFromFile(ComboBox1->Text);
                    // je met cette ligne en commentaire parse que cela ne fonctionne pas !
                    Form2->ShowModal();
            }
            else
            {
                   ShowMessage("pas de fichier");
            }
     
    }
    2- mon deuxieme cas quand je met tes deux ligne de code dans dans FormShow de Form2 jobtient une boite vide egalement !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void __fastcall TForm2::FormShow(TObject *Sender)
    {
         ShowMessage(ComboBox1->Text) ;
         //Memo1->Lines->LoadFromFile(ComboBox1->Text);
    }
    dans tout les cas la deuxieme ligne de code nest pas valide !

  6. #66
    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 tout le temps une boite qui me specifie un message d'erreur qui me di impossible d'ouvrir le fichier C:\Documents and Settings\U228167\Desktop\Projet\060517\version4\excel !!
    ce fichier existe et il est au bonne endroit je sais pas pourquoi il me di cela !


  7. #67
    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
    Le nom de fichier "excel" a t'il une extension ?
    ou est ce un repertoire ?

  8. #68
    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 je vois pas ce que tu ve dire ! mai sur excel le nom de ma variable inclu ceci : C:\Documents and Settings\U228167\Desktop\Projet\060518\version1\excel\essai.txt !
    cette chaine de caractere qui est donner a ma dll ! ensui te ma dll la donne a ma Form1 ! ma FOrm1 la donne a Form2 qui est afficher dans ma conbobox ! le chemin du depart correspond a celui de larriver :! jobtient bien C:\Documents and Settings\U228167\Desktop\Projet\060518\version1\excel\essai.txt dans ma conbobox de ma fORM2 ! jaffiche la chaine au moment de la donner a Form1 et au moment de la donner a Form2 cest la meme ! elle est correcte !
    ensuite pour afficher le contenu de ce chemin en loccurence afficher le contenu de essai.txt cela pose probleme ! tu as compri si ta d autres question n'hesite pas !

  9. #69
    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
    Si ton chemin complet avec le nom de fichier est bon dans ta ComboBox et que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Memo1->Lines->LoadFromFile(ComboBox1->Text);
    dans ta Form2 ne fonctionne pas

    Je suis à court d'idée car cela devrai fonctionner

    Un dernier petit test, serai de créer un bouton sur ta Form2 et de mettre le code precedent dans son evenement OnClick.
    Verifier ce qui y'a dans la combo et clicker sur le bouton.
    N'oublie de commenter se qui y'a dans le Form2::OnShow.

    lanonyme

  10. #70
    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
    jai essayer de faire ce que tu ma di precedemment ! jai creer un bouton sur ma form2 et jai incorporer le code a linterieur ! meme erreur ! jai une boite de dialogue qui me di impossible douvrir le fichier machin bidule ! moi aussi je suis a cours d'idee ! je sais plus quoi faire !

  11. #71
    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
    Voila jai peu etre une chance de pouvoir afficher mon fichier ! en faite FormShow envoi a la Form2 la chaîne de caractère que dont je veu afficher le contenu ! donc jenvoi cette chaîne sur une listbox (ou autre si vous constatez qu’on peut plus simple di le y a pas de souci) qui va afficher cette chaîne ! jusqu’ici ça marche ! mai je sais pas comment reprendre cette chaîne a partir de ma fonction void __fastcall TForm2::Button4Click et je sais pas non plu quoi mettre au paramètre de la fonction _lopen() !!! Ces paramètre je les mis en « ?????? » vu que je ne sais pas ! (En faite la chaîne de caractère demeure dans la listbox je ve la prendre pour l’utiliser dans mon open !)
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    void __fastcall TForm2::Button4Click(TObject *Sender)
    {
    const int size=1024;
    char buffer[size];
     
                    //Effacement du texte auparavant
                    ListBox1->Clear();
                    Memo1->Clear();
     
                    // recuperationn du chemin et affichage de celui ci
                    ListBox1->Items->Add( ???????);
     
                    memset(buffer,0,size);
                    // ouverture du fichier selectionné en lecture seulement
                    HFILE file=_lopen( ???????????,OF_READ);
                            if (file!=NULL) _lread(file,buffer,size);
                                    for (int i=0;i<1023;i++) if (buffer[i]==0) buffer[i]='.';
                    // affichage du fichier dans le memo
                    Memo1->Text=AnsiString(buffer);
                    _lclose(file);
    }
     
     
    void __fastcall TForm1::FormShow(TObject *Sender)
    {
            AnsiString MonChemin;
            int i_bcl_recup;
            Form2->ComboBox1->Clear();
            Form2->Memo1->Clear();
            Form2->ListBox1->Clear();
     
            for(MonChemin="",i_bcl_recup=1;i_bcl_recup<=ParamCount();i_bcl_recup++)
                    MonChemin= MonChemin + ParamStr(i_bcl_recup);
     
     
            if(FileExists(MonChemin))
            {
                    Form2->ComboBox1->Text=MonChemin;
                    Form2->ListBox1->Items->Add(MonChemin);
                    Form2->ShowModal();
            }
            else
            {
                   ShowMessage("pas de fichier");
            }
     
    }
    Merci pour tout renseignement parce que je

  12. #72
    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
    Jai essayer toutes les possibilité rien a faire !!!!!

  13. #73
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut communication entre un projet DLL et une application
    si j'ai bien compris tu veux par l'intermediaire de ta DLL charger un fichier texte dans excel

  14. #74
    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
    En fait je crois que lanonyme a posé la bonne question...
    Je n'y vois pas de réponse et vue les différents message d'erreur je tends à penser que l'erreur est bien là...

    Form2 ne semble pas créé lorsque Memo1 est affiché.
    Tu as deux possibilité, soit tu t'assures dans les options de projet que Form2 est créé par défaut (et je ne suis pas sûr que cela soit suffisant) soit dans ces mêmes options tu t'assures que Form2 n'est pas créé automatiquement et dans ce cas dans le FormShow de Form1, et juste avant la 1ère évocation de Form2 tu fais un CreatForm sur Form2.

    Mattetfamilly.

  15. #75
    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

  16. #76
    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
    Je te comprends.
    Le problème présent ne devrait pas être trop difficile à gérer.

    Mais bon courage pour la suite avec Builder.

    Une fois que l'on a un peut utilisé le Builder cela devient plus facile et je trouves vraiement que c'est langage génial.

    Perso je ne changerai pas de compilateur ni de langage tout court.

    Là je suis en vacance pour un mois et je n'ai plus le Builder à la maison.
    Mais si tu peines encore le mois prochain (19/06), je te proposes que tu m'envoies en zip les fichiers de l'application pour que je regardes tout et que je fasses une simulation avec le Builder au boulot.



    Encore une c'est un projet scolaire ou bien c'est un projet professionel?

    Mattetfamilly

  17. #77
    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
    en faite je suis en stage et cela pourra deboucher sur une enbauche et perso jaimerai bien terminer ce travaille sachant que cest meme pas le tiers de ce que je dois faire ! si tu ve je te passe mon projet maintenant ???

  18. #78
    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

    Qui pourrai me dire ou mon probleme pourrai se trouver ? parce que franchement jai essayer dans tout les sens et je compren pas pourquoi mon memo naffiche pas mon fichier !!!!!!

  19. #79
    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
    Bonjour,

    tout d'abord, dans ta form1 est ce que tu recupere correctement ton chemin ?
    Si oui, essaye ce qui suis sinon

    Declare ton dans le .h de ta form1

    Ensuite, tu inclue l'unit de ta form1 dans l'unit de la form2.
    Puis apres tu peux acceder a cette variable par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HFILE file=_lopen( Form1->MonChemin,OF_READ);
    Si y'a un probleme de char*, il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HFILE file=_lopen( Form1->MonChemin.c_str(),OF_READ);
    lanonyme

  20. #80
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Ton fichier est fait comment???

    C'est un fichier texte éditable avec Notepad???
    C'est un fichiier Word fait sous Word ou OpenOffice???

    Si c'est un fichier Word, tu ne pourras jamais l'afficher sur un Memo à part si tu décodes le formalisme mise en place par Microsoft.

    Tu peux peut-être obtenir quelques choses avec les fonctions OLE Word ou les composants Word présents dans l'onglet Office de BCB (dès la version pro) mais je ne les ai jamais utilisé.

    Si tu as du rtf, tu peux l'afficher dans un TRichEdit.

+ Répondre à la discussion
Cette discussion est résolue.

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