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

API, COM et SDKs Delphi Discussion :

Bug GetDlgItemText résolu à lire ...


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 2
    Par défaut Bug GetDlgItemText résolu à lire ...
    Bonjour,

    Ayant récemment eu un probleme avec un petit soft programmé en api sous delphi, ma commande etait (en utilisant l'api getdlgitemtext):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var name: pchar;
    begin
      GetDlgItemText(hWND, IDC_EDIT1, name, 255);
    Le problème était que sous windows 2000 et xp cela fonctionnait très bien excepté sous w98. Pour résoudre ce problème suffit de déclarer votre variable et d'ecrire la commande comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var name: array[0...255] of char;
    begin
      GetDlgItemtext(hWND, IDC_EDIT1, name, sizeof(name));
    et maintenant plus aucun problème que ce soit sous windows 98 ou XP/2K.

    Voila j'espere que ca aidera quelqu'un.

    Balises de code ajoutées par Pierre Castelain.
    Pensez-y à l'avenir.

  2. #2
    Membre émérite
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Par défaut
    Bravo, partager ses "découvertes" est une excellente attitude.

    Ce qui est étonnant dans ton premier code, c'est qu'il ait pu marcher, même sous NT. Lorsque tu appelle GetDlgItemText, name n'est pas initialisée, ou plutot la variable contient n'importe quoi. Cela ne devrait donc pas fonctionner.

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 2
    Par défaut
    le savoir appartient à tous

    j'ai bien galérer pour me rendre compte que ca venait juste de ca. Alors je me dis que ca eviteras peut etre que quelqu'un d'autre s'arrache les cheuveux pour se rendre compte que ca vient de la.
    J'ai tout essayer avant de me rendre compte de mon erreur (desassembler le prog, analyser la procedure qui fait appel à l'api, jai tracer le prog avec softice et je me suis rendu compte que le buffer avait un soucis ) par contre ce qui est bete c'est que ca fonctionne sous xp (aparement microsoft à "updaté" le code de l'api) ce qui n'est pas très bon pour les programmeurs. Daccord ils ont corrigé ca mais un programmeur qui test son application que sous xp ne se rendra pas compte de l'incompatibilité du code. Heureseument que j'ai eu la presence d'esprit de tester sous w98 avant de le redistribuer.

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

Discussions similaires

  1. Bug sur le site ? Impossible de lire les articles.
    Par michel.bosseaux dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 4
    Dernier message: 24/03/2014, 08h28
  2. ptit bug du forum (titre tronqué si bouton résolu)
    Par clavier12AZQSWX dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 15/06/2012, 20h27
  3. Bug d'overflow déroutant ! [en partie résolu]
    Par le_duche dans le forum C++
    Réponses: 2
    Dernier message: 10/04/2008, 09h44
  4. Réponses: 3
    Dernier message: 04/04/2008, 07h03

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