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

Problème WriteFile() successifs


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 126
    Par défaut Problème WriteFile() successifs
    Bonjour!

    j'aimerai envoyer plusieurs messages de différents types sur mon port série RS232. J'utilise les fonctions WriteFile de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WriteFile(hcom,cBuffer, 15, &m,NULL);
    WriteFile(hcom,"coucou",15,&m,NULL);
    A l'exécution, j'ai bien la valeur de cBuffer (100) sur mon port virtuel mais je n'ai pas "coucou" et inversement si je place la fonction avec "coucou" avant.
    Je ne vois pas du tout comment cela fonctionne et pourquoi je n'arrive pas à envoyer cBuffer et coucou.

    Pouvez vous m'aider s'il vous plait ?

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 126
    Par défaut
    J'ai trouvé quelquechose qui marche :

    dans une fonction, on appelle deux fois la fonction WriteBuffer :
    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
     
    //récupération des valeurs de forces G/D finales
    	CEdit* editG=(CEdit*) GetDlgItem(IDC_EDIT1);
    	FromCtrl(*GetDlgItem(IDC_EDIT1),ValFG);
    	iSizeG = editG->GetLine(0, cBufferG, 256); 
     
     
    		//send the VALFG value in decimal
            CCom::WriteBuffer(IDC_EDIT1, editG, cBufferG,iSizeG);
     
            CEdit* editD=(CEdit*) GetDlgItem(IDC_EDIT2);
    	FromCtrl(*GetDlgItem(IDC_EDIT2),ValFD);
    	iSizeD = editD->GetLine(256, cBufferD, 512); 
     
     
    	//send the VALFD value in decimal
    	CCom::WriteBuffer(IDC_EDIT2, editD, cBufferD,iSizeD);
    et dans la fonction WriteBuffer on récupère également la taille du buffer avant d'appeler WriteFile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	//we get the size of the buffer
    	iSize = edit->GetLine(0, cBuffer, 256); 
    	result=WriteFile(hcom,cBuffer, iSize, &m,NULL);
    Merci !

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/10/2009, 09h44
  2. problèmes avec GetSaveFileName et WriteFile
    Par flo-1987 dans le forum Bibliothèques
    Réponses: 7
    Dernier message: 15/04/2009, 11h51
  3. [Win API] problème avec WriteFile
    Par acryline dans le forum Windows
    Réponses: 5
    Dernier message: 02/11/2006, 09h26
  4. Problème avec WriteFile
    Par Gh0st dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 13/07/2006, 19h32
  5. Problème d'écriture avec WriteFile
    Par Milowen dans le forum C++
    Réponses: 5
    Dernier message: 17/01/2006, 09h40

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