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. #81
    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 fai exactement ce que tu ma di de faire de plus hier soir javai penser a cela ! jai bien mis ma variable MonChemin dans le .h de ma form1 en public ! le paramatre de la fonction open a ete remplacer ! cela compil bien quand je met la deuxieme ligne de code pour la conversion en char * ! jusqua la tout va bien ! mais meme probleme impossible d'ouvrir le fichier !

  2. #82
    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 le fichier cest un fichier que jai creer moi meme ! clik droit Nouveau->Text Document ! cest un .txt ! je met des ligne de merde a linterieur ! sinon pour ce que tu di pour le TRichtEdit jai regarder apparamant je trouve pas dans la barre ou tu choisi ! apparamant yen a pas je sais pas pourquoi ! il dois etre dans l'onglet WIN32 mai moi dans ma barre yapa donglet win32 !!! quand j'ouvre mon projet longlet win32 est present des que jouvre ma fenetre pour pouvoir y ajouter RichtEdit longlet senleve quoi !

  3. #83
    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
    Je viens de voir en faite jai creer deux projet different ! le premier cest une application toute simple longlet WIN32->RichtEdit apparait bien ! le deuxieme cesy une application CLX toute simple il ny a pas donglet WIN32->RichtEdit ! moi ce que jutilise cest une application CLX ! donc il ny a pas moyen dutiliser WIN32->RichtEdit ! devrai refaire mon application cest a dire remplacer mon application CLX par une application normal koi ??
    je sais je sui un gros je merite detre

  4. #84
    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
    La CLX est la version multi-plateforme de la VCL (compatible Windows et Linux).
    Certains composants ne sont pas valables au niveau de la CLX...

  5. #85
    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
    As tu réellement besoin de ta form2 de ton combo box et de ton Memo?
    Une fois le texte dans le Memo, que dois tu en faire?

    Est ce qu'un ShellExecute, une nouvelle fois ne permettrait pas de solutionner le problème?

    En fait après l'ouverture de ton open dialog tu fais un ShellExecute sur le fichier Word.

    Cette commande va t'ouvrir Word avec le fichier indiqué ou même tout simplement: ouvrir word imprimer le fichier et fermer word.

    Si tu choisis d'ouvrir Word pour consultation, j'ai vu quelque part sur le forum, que tu peux mettre ton application en Standby au point d'appel du fichier Word.

    Il me semble que lancer le fichier Word en consultation (sans le stand by) cela s'écrit comme cela.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(NULL,"open",monchemin.c_str(),NULL,monchemin.c_str(),SW_SHOWNORMAL);
    l'ouvrir juste pour impression et le refermer cela devrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute(NULL,"print",monchemin.c_str(),NULL,monchemin.c_str(),SW_SHOWNORMAL);
    Est ce que cela peut te permettre d'avancer?
    Sinon je crois aussi qu'il faut que tu passes par les objets Ole: certains te permettent d'afficher le document Word sans avoir les barres d'outils de Word, ce qui te permet de contrôler les actions de l'utilisateur voir même de l'ouvrir en lecture seule...


    Mattetfamilly.

  6. #86
    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 avancer un peu mon travail et je me sui rendu compte que lorsque je change mon chemin de spécification c’est a dire au lieu de mettre « «C:\Documents and Settings\U228167\Desktop\Projet\060522\version2\excel \essai.txt » je met « C:\essai.txt »
    Et accrochez vous bien cela marche parfaitement ! La récupération du chemin est bonne l’affichage du contenu du fichier est bonne aussi ! Tout marche quand le chemin est différent c’est à dire le deuxième « C:\essai.txt » !!!
    Je pense que c’est un problème d’espace dans la chaîne de caractère !! Je ne suis pas sur ! Si c’est ça j’aimerai bien avoir de laide ! Comment résoudre ce problème ! Voici mon code :
    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
     
    void __fastcall TForm1::FormShow(TObject *Sender)
    {
     
            const int size=1024;
            char buffer[size];
            int i_bcl_recup;
     
            Form2->Edit1->Clear();
            Form2->ComboBox1->Clear();
            Form2->Memo1->Clear();
     
            for(MonChemin="",i_bcl_recup=1;i_bcl_recup<=ParamCount();i_bcl_recup++)
                    MonChemin= MonChemin + ParamStr(i_bcl_recup);
     
                    Form2->ComboBox1->Text=MonChemin;
                    Form2->ListBox1->Items->Add(MonChemin);
     
                    memset(buffer,0,size);
                    // ouverture du fichier selectionné en lecture seulement
                    HFILE file=_lopen(Form1->MonChemin.c_str(),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
                    Form2->Memo1->Text=AnsiString(buffer);
                    _lclose(file);
                    Form2->ShowModal();
     
    }

  7. #87
    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 utilisant ce code cela m’affiche que des « ……………………………… » et non pas le contenu du fichier ! Pourtant le fichier comporte bien du texte a l’intérieur !!! Je ne comprend pas !!!
    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
     
    void __fastcall TForm1::FormShow(TObject *Sender)
    {
     
            const int size=1024;
            char buffer[size];
            int i_bcl_recup;
     
            Form2->ComboBox1->Clear();
            Form2->Memo1->Clear();
     
            for(MonChemin="",i_bcl_recup=1;i_bcl_recup<=ParamCount();i_bcl_recup++)
                    MonChemin= MonChemin + ParamStr(i_bcl_recup);
                    Form2->ComboBox1->Text=MonChemin;
                    Form2->ListBox1->Items->Add(MonChemin);
     
                    memset(buffer,0,size);
                    // ouverture du fichier selectionné en lecture seulement
                    HFILE file=_lopen(MonChemin.c_str(),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
                    Form2->Memo1->Text=AnsiString(buffer);
                    _lclose(file);
                    Form2->ShowModal();
     
    }

  8. #88
    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,

    Ca viendrai pas de cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       for (int i=0;i<1023;i++) if (buffer[i]==0) buffer[i]='.';
    Edit :
    j'ai poster un peu vite,
    Le test sur le buffer c'est pour remplacer quoi ?
    lanonyme

  9. #89
    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,

    je me sui rendu compte que lorsque je change mon chemin de spécification c’est a dire au lieu de mettre « «C:\Documents and Settings\U228167\Desktop\Projet\060522\version2\excel \essai.txt » je met « C:\essai.txt »
    Pour obtenir, la version courte de ton chemin :

    Code de Dure_Limite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //--------------------------------------------------------------------------- String __fastcall TForm1::Path_LongToCourt( String Path_Long ) { char PathCourt[MAX_PATH]; GetShortPathName(Path_Long.c_str(), PathCourt, MAX_PATH); return (String)PathCourt; } //---------------------------------------------------------------------------
    Ainsi, tu n'aura plus de probleme d'espace

    lanonyme

  10. #90
    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 cest peu etre cette ligne de code que tu as specifier !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (int i=0;i<1023;i++) if (buffer[i]==0) buffer[i]='.';
    mai je l'ai mise en commentaire et jobtient rien cest a dire que dans le memo ya vu vide aucun contenu afficher !! la je comprend pas !

  11. #91
    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 tous ceux qui me senblai possible et rien a faire ! la ligne de commande precedente je lai mise en commentaire finalement ya rien qui s'affiche dans mon memo !!!

  12. #92
    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,

    Dans ton post #86, tu indique tout marche excepter pour les noms de chemin long.

    Je t'est indiqué une methode de convertion ...

    Ne marche t'elle pas ?

    lanonyme

  13. #93
    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 jai effectivement essayer la methode que tu ma proposer ! pour le chemin C:\essai.txt cela fonctionne parfaitement le contenu est afficher ! sinon pour le chemin tres long il y a une boite de dialogue me disan que cest impossible douvrir le fichier !

  14. #94
    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
    franchement je pense pas que cela y joue la longueur de la chaine vu qu'elle est bien recuperer ! maintenant je sais pas ou chercher ! jai tout essayer !

  15. #95
    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
    Ce n'est pas la longueur du nom du fichier qui est en cause mais bien les espaces qui sont considérés comme des séparateurs par ton application: lorsque tu reconstitues le nom de fichier tu ne les remets pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     for(MonChemin="",i_bcl_recup=1;i_bcl_recup<=ParamCount();i_bcl_recup++)
                    MonChemin= MonChemin + ParamStr(i_bcl_recup) +" ";
    MonChemin=MonChemin.SetLength(MonChemin.Length()-1);
    Dans ce code, à chaque ligne tu inséres 1 expace entre chaque paramètre et à la fin, tu supprimes l'espace finale.

    Attention, avec cette correction, je soupçonnes des défaults: si ton chemin comporte un caractère proscrit mais toléré par Windows: 'é' / 'è' / '&' / 'ë' ou autre types...

    Mattetfamilly.

  16. #96
    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 cela fonctionne comme je le veu ! cela affiche bien le contenu du fichier ! JE remerci tous ceux qui ont contribuer a cette effort ! Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 5 sur 5 PremièrePremière 12345

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