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 avec message WM_CREATE


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 118
    Par défaut Problème avec message WM_CREATE
    Bonjour à tous !

    J'ai un problème avec l'utilisation de WM_CREATE de l'api windows. En fait, je cherche à programmer un générateur dynamique de fenêtre à partir de scripts. Donc lorsque la fenêtre est crée, j'interprète le script qui est censé décrire la fenêtre. Mon problème vient du fait que l'exécution d'une fonction est subitement interrompue sans raison, Alors qu'après tests, il s'avère possible que faire une boucle infini dans WM_CREATE, donc le problème ne vient pas de là

    donc le code en question est celui-ci (il s'agit d'une recherche dans un arbre binaire)
    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
    DOS9API COMMANDFLAG   Dos9_GetCommandProc(char* lpCommandLine, LPCOMMANDLIST lpclCommandList, void** lpcpCommandProcedure)
    {
        int iRet;
        while ((iRet=strnicmp(lpCommandLine,lpclCommandList->ptrCommandName,lpclCommandList->iLenght)))
        {
            printf("Nouveau test : %s==%s\n",lpclCommandList->ptrCommandName, lpCommandLine);
            if (iRet>0)
            {
                if (!(lpclCommandList=lpclCommandList->lpclRightRoot)) return -1;
            }
            else if (iRet<0)
            {
                if (!(lpclCommandList=lpclCommandList->lpclLeftRoot)) return -1;
            }
        }
        *lpcpCommandProcedure=lpclCommandList->lpCommandProc;
        return lpclCommandList->cfFlag;
    }
    le bug semble arriver à l'execution de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strnicmp(lpCommandLine,lpclCommandList->ptrCommandName,lpclCommandList->iLenght)
    la je suis a cours d'idées pour expliquer ce comportement. j'espère que quelqu'un saura éclairer ma lanterne

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 473
    Par défaut
    Citation Envoyé par Darkbatcher Voir le message
    Mon problème vient du fait que l'exécution d'une fonction est subitement interrompue sans raison, Alors qu'après tests, il s'avère possible que faire une boucle infini dans WM_CREATE, donc le problème ne vient pas de là
    Il y a de fortes chances pour qu'il s'agisse d'une segfault. Tu dois probablement avoir des messages d'erreur qu'il serait bon de déposer ici.

    L'un des trois paramètres de strnicmp() doit être incorrect. Soit le premier ou les deux premiers sont NULL ou ne pointent pas les buffers que tu crois, soit length est incorrecte elle-aussi et provoque un dépassement de buffer.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 118
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Il y a de fortes chances pour qu'il s'agisse d'une segfault. Tu dois probablement avoir des messages d'erreur qu'il serait bon de déposer ici.

    L'un des trois paramètres de strnicmp() doit être incorrect. Soit le premier ou les deux premiers sont NULL ou ne pointent pas les buffers que tu crois, soit length est incorrecte elle-aussi et provoque un dépassement de buffer.
    Merci pour la réactivité De fait il s'agit d'une segfault c'est lpCommandList. félicitations à windows qui rattrape les erreurs d'adressages sans en informer personne, même pas un petit message d'erreur

    Encore merci

    EDIT: problème résolu

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

Discussions similaires

  1. Problème avec message erreur
    Par Udani dans le forum MATLAB
    Réponses: 10
    Dernier message: 21/12/2009, 06h58
  2. IMAP problème avec message uid et msgno Bad Message Number
    Par 12Heracles dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/02/2009, 19h39
  3. Problème avec message d'erreur
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 15/10/2007, 15h21
  4. Problème avec <message-resources >
    Par enok37 dans le forum Struts 1
    Réponses: 4
    Dernier message: 16/05/2007, 16h27
  5. Problème avec Message (Oracle 10g)
    Par Gouzoul dans le forum Oracle
    Réponses: 2
    Dernier message: 13/04/2006, 16h00

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