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

Visual C++ Discussion :

[win32] un buffer qui se vide


Sujet :

Visual C++

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut [win32] un buffer qui se vide
    Au vue du titre, c est un peu vague. Effectivement c est vague mais je vais essayer d être précis.
    En fait j ai fait un hyperterminal un peu comme celui de windows, quand je me connecte, dans ma zone de texte apparaissent les paramètres de la connexion comme prévu. Mais au bout d un certain temps (aléatoire), sans aucune raison apparente, ma zone de texte devient vierge et le buffer qui contenait les caractères est vide.

    je met mon soft en piece jointe, c est une vieille version mais le "bug" y est déja

    merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    ça n intéresse personne

  3. #3
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Ben non, tu te doutes bien que deboguer ton programme n'est pas notre priorite... C'est a toi de localiser le probleme. Pose des breakpoint quand la zone de texte est videe, etc...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    j ai trouvé le probleme mais pas la raison.
    le buffer se vide a cause de ça :

    a = strlen(buffer) ;
    if (a >=100000) a = 0;

    et la taille du buffer dans mon cas ne dépasse pas 200

  5. #5
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    La preuve que si (d'un point de vue de strlen). Tu dois oublier de t'assurer de mettre le zero terminal.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //reception donnees
    int length = ReceiveData( buffer );
    // s'assurer qu'il y a le zero terminal
    buffer[length] = 0;

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    La preuve que si (d'un point de vue de strlen). Tu dois oublier de t'assurer de mettre le zero terminal.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //reception donnees
    int length = ReceiveData( buffer );
    // s'assurer qu'il y a le zero terminal
    buffer[length] = 0;
    non parce qu il y a avant :

    memset (buffer,0, sizeof (buffer)) qui met a zero tout mon buffer et il y a un zero terminal dans tous les cas.

  7. #7
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Si tu parles de ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    bool _f_read(char *bof, DWORD READ_BUF_SIZE)
    {
    	memset (bof,0, sizeof (bof));
    j'ai peur que ca ne fasse pas ce que tu esperes : sizeof(bof) = taille d'un pointeur = 4 octets, a priori.
    http://c.developpez.com/faq/c/?page=...ABLEAUX_sizeof

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    arf
    mais ta solution en mettant un zéro terminal a la fin du tableau ou buffer ne change rien, mais ce qui me surprend c est le coté aléatoire, ça peut intervenir au bout de 5min comme de 40min. J ai encore jamais vu ça

Discussions similaires

  1. Buffer qui ne se vide pas
    Par maniaco_jazz dans le forum Administration
    Réponses: 1
    Dernier message: 08/08/2009, 15h08
  2. Réponses: 2
    Dernier message: 13/06/2006, 20h47
  3. inserer un numeric qui est vide?
    Par shinrei dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 14/03/2006, 21h39
  4. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40
  5. [ODBC] erreur SQL pour les unions qui renvoient vide
    Par fabriceMerc dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/11/2003, 11h06

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