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

MFC Discussion :

GetLastError()


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    24
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Par d�faut GetLastError()
    Ou trouver la correspondance de la valeur renvoy�e par GetLastError() ?
    Merci

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    Msdn bien sur ... Tape GetLastError et dans les remarques va voir "System Error Codes"

  3. #3
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    24
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Par d�faut
    GetLastError est il uniquement consacr� aux threads??

  4. #4
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par d�faut
    non

    sinon pour voir l'erreur rapidement, tu fais dans VC :

    Tools => Error Look up, tu tappes le n� de l'erreur et zouuuu

  5. #5
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    24
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Par d�faut
    ok chef. Mais est ce que ce code correspond uniquement aux renvois de GetLastError() ????

  6. #6
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par d�faut
    est ce que look up error permet de voir decod� les n� de getlasterror => oui

    est ce que look up error permet de voir decod� d'autre code erreur => je sais pas mais je pense pas

  7. #7
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Tu veux parler sans doute de CommDlgExtendedError(VOID); ?
    Ce n'est pas � proprement une erreur , donc il faut malheureusement faire ton propre code � la main (comme le dit mon confr�re du salon d'� c�t� !)
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  8. #8
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    24
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Par d�faut
    exactement. vous m avez bien aid� les gars c'est bien gentil.

  9. #9
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Bon, j'ai trouv� et �a rique d'�tre utile � beaucoup de monde :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    //
    //  FUNCTION: ProcessCDError(DWORD) 
    //
    //  PURPOSE: Processes errors from the common dialog functions.
    //
    //  COMMENTS:
    //
    //        This function is called whenever a common dialog function
    //        fails.  The CommonDialogExtendedError() value is passed to
    //        the function which maps the error value to a string table.
    //        The string is loaded and displayed for the user. 
    //
    //
    void ProcessCDError(DWORD dwErrorCode, HWND hWnd)
    {
       WORD  wStringID;
       TCHAR  buf[MAX_PATH];
     
       switch(dwErrorCode)
          {
    	 case CDERR_DIALOGFAILURE:   wStringID=IDS_DIALOGFAILURE;   break;
    	 case CDERR_STRUCTSIZE:      wStringID=IDS_STRUCTSIZE;      break;
    	 case CDERR_INITIALIZATION:  wStringID=IDS_INITIALIZATION;  break;
    	 case CDERR_NOTEMPLATE:      wStringID=IDS_NOTEMPLATE;      break;
    	 case CDERR_NOHINSTANCE:     wStringID=IDS_NOHINSTANCE;     break;
    	 case CDERR_LOADSTRFAILURE:  wStringID=IDS_LOADSTRFAILURE;  break;
    	 case CDERR_FINDRESFAILURE:  wStringID=IDS_FINDRESFAILURE;  break;
    	 case CDERR_LOADRESFAILURE:  wStringID=IDS_LOADRESFAILURE;  break;
    	 case CDERR_LOCKRESFAILURE:  wStringID=IDS_LOCKRESFAILURE;  break;
    	 case CDERR_MEMALLOCFAILURE: wStringID=IDS_MEMALLOCFAILURE; break;
    	 case CDERR_MEMLOCKFAILURE:  wStringID=IDS_MEMLOCKFAILURE;  break;
    	 case CDERR_NOHOOK:          wStringID=IDS_NOHOOK;          break;
    	 case PDERR_SETUPFAILURE:    wStringID=IDS_SETUPFAILURE;    break;
    	 case PDERR_PARSEFAILURE:    wStringID=IDS_PARSEFAILURE;    break;
    	 case PDERR_RETDEFFAILURE:   wStringID=IDS_RETDEFFAILURE;   break;
    	 case PDERR_LOADDRVFAILURE:  wStringID=IDS_LOADDRVFAILURE;  break;
    	 case PDERR_GETDEVMODEFAIL:  wStringID=IDS_GETDEVMODEFAIL;  break;
    	 case PDERR_INITFAILURE:     wStringID=IDS_INITFAILURE;     break;
    	 case PDERR_NODEVICES:       wStringID=IDS_NODEVICES;       break;
    	 case PDERR_NODEFAULTPRN:    wStringID=IDS_NODEFAULTPRN;    break;
    	 case PDERR_DNDMMISMATCH:    wStringID=IDS_DNDMMISMATCH;    break;
    	 case PDERR_CREATEICFAILURE: wStringID=IDS_CREATEICFAILURE; break;
    	 case PDERR_PRINTERNOTFOUND: wStringID=IDS_PRINTERNOTFOUND; break;
    	 case CFERR_NOFONTS:         wStringID=IDS_NOFONTS;         break;
    	 case FNERR_SUBCLASSFAILURE: wStringID=IDS_SUBCLASSFAILURE; break;
    	 case FNERR_INVALIDFILENAME: wStringID=IDS_INVALIDFILENAME; break;
    	 case FNERR_BUFFERTOOSMALL:  wStringID=IDS_BUFFERTOOSMALL;  break;
     
    	 case 0:   //User may have hit CANCEL or we got a *very* random error
    	    return;
     
    	 default:
    	    wStringID=IDS_UNKNOWNERROR;
          }
     
       LoadString(NULL, wStringID, buf, sizeof(buf));
       MessageBox(hWnd, buf, NULL, MB_OK);
       return;
    }
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  10. #10
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    24
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Par d�faut
    otes moi d un doute , ce n'est pas toi qui a developp� tout ca non ???

  11. #11
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Oh non, je ferais beaucoup pour toi mais quand m�me pas tout �a .
    Je l'ai trouv� dans MSDN mais je viens de voir que c'est incomplet, il faut lui ajouter un fichier qui donne les correspondances avec les cha�nes. Et en plus, elles sont en anglais et elles correspondent � un cas qui n'est pas le tien ; mais c'est d�j� un d�but. Je te l'envoie en mp.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  12. #12
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    24
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Par d�faut
    ok merci bien j vai voir ca

  13. #13
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut c'est le confrere d'a cote qui revient :
    je viens de tester ca pour les fonctions avec getlasterror() le message est en francais dans le texte et �a fonctionne :
    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
     
    // je le fais Exprès de faire une erreur le monde à l'envers 
    HANDLE hFile = ::CreateFile("portelawak", GENERIC_READ|GENERIC_WRITE,
    			FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
    			NULL);
     
    	LPVOID lpMsgBuf;
    	FormatMessage( 
        FORMAT_MESSAGE_ALLOCATE_BUFFER | 
        FORMAT_MESSAGE_FROM_SYSTEM | 
        FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        GetLastError(),
        0, // Default language
        (LPTSTR) &lpMsgBuf,
        0,
        NULL 
    	);
    	// Process any inserts in lpMsgBuf.
    	// ...
    	// Display the string.
    	AfxMessageBox((LPCTSTR)lpMsgBuf, MB_OK | MB_ICONINFORMATION );
    	// Free the buffer.
    	LocalFree( lpMsgBuf );

  14. #14
    R�dacteur
    Avatar de abelman
    Inscrit en
    F�vrier 2003
    Messages
    1 106
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2003
    Messages : 1 106
    Par d�faut
    Citation Envoy� par farscape
    salut c'est le confrere d'a cote qui revient :
    je viens de tester ca pour les fonctions avec getlasterror() le message est en francais dans le texte et �a fonctionne :
    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
     
    // je le fais Exprès de faire une erreur le monde à l'envers 
    HANDLE hFile = ::CreateFile("portelawak", GENERIC_READ|GENERIC_WRITE,
    			FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
    			NULL);
     
    	LPVOID lpMsgBuf;
    	FormatMessage( 
        FORMAT_MESSAGE_ALLOCATE_BUFFER | 
        FORMAT_MESSAGE_FROM_SYSTEM | 
        FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        GetLastError(),
        0, // Default language
        (LPTSTR) &lpMsgBuf,
        0,
        NULL 
    	);
    	// Process any inserts in lpMsgBuf.
    	// ...
    	// Display the string.
    	AfxMessageBox((LPCTSTR)lpMsgBuf, MB_OK | MB_ICONINFORMATION );
    	// Free the buffer.
    	LocalFree( lpMsgBuf );
    <compl�ment>
    C'est exactement (� 2 3 trucs pr�s) ce que fait le error lookup de vc.
    la langue par d�faut du message est celle de l'os
    </compl�ment>

  15. #15
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    24
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Par d�faut
    MFC ??? je deteste....

  16. #16
    R�dacteur
    Avatar de abelman
    Inscrit en
    F�vrier 2003
    Messages
    1 106
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2003
    Messages : 1 106
    Par d�faut
    Citation Envoy� par elodie escande
    ca a l air d etre du MFC ca. Je d�teste.

    Elle est ou l'erreur ds le code deja .....
    Nop. Pas de MFC la dedans. rien que des appels directs � Win32. (CreateFile, GetLastError(), FormatMessage).
    Le code erreur c'est evidemment GetLastError()

  17. #17
    Membre averti
    Inscrit en
    Juillet 2003
    Messages
    24
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Par d�faut
    GetLastError() ca renvoie quoi dans cet exemple si au lieu du nom bidon de CreateFile je me un fichier qui existe (COM1 p.ex).
    Ca memorise l'ancienne erreur ou pas??????
    Pcq moi dans ce cas j ai toujours 6 que l operation soit bonne ou pas
    (fichier existant ou pas)
    La correspondance avec l 'outil error Lookup est en outre loin d'etre bonne cher messieurs.

  18. #18
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    en general c'est pas comme �a qu'il faut proceder je suis alle un peu vite:
    j'ouvre un fichier on me retourne un handle je me pose la question le handle est valide ? dans le cas present hfile <> de INVALID_HANDLE_VALUE ?
    si c'est pas bon je regarde avec getlasterror () pour voir le pb
    sinon � priori getlasterror renvoie 0 .
    dans le header error.h
    tu as #define ERROR_INVALID_HANDLE 6

  19. #19
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    bonjour ,j'en rajoute une petite couche
    pour ouvrir le com (ton precedent post)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    char buffer[ 20 ];
    // port number 0: com1 1:com2 etc...
    wsprintf( buffer, "\\\\.\\COM%d", port_number + 1 );
    // fonctionne aussi
    //wsprintf( buffer, "COM%d", port_number + 1 );
     
    HANDLE result = CreateFile( buffer,
                             GENERIC_READ | GENERIC_WRITE,
                             0,
                             NULL,
                             OPEN_EXISTING,
                             FILE_FLAG_OVERLAPPED,
                             NULL );

  20. #20
    Membre confirm�
    Inscrit en
    Janvier 2004
    Messages
    101
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Par d�faut
    tu na pas compris la question en fait (oublie le com g pa voulu tout ecrire).
    question 1:
    Que renvoie GetLastError() exactement?
    2 tests. 1-le port com est pas ok(mauvaise chaine) --> getlasterror = 6
    2- le port com est ok --> getlasterror = 6.
    alors ke getlasterror = 0 si le code est bon au premier coup?????
    Que renvoie GetLastError() exactement?

    question 2:La correspondance avec l 'outil error Lookup est en outre loin d'etre bonne. le code renvoyer par ta fonction n'est pas le meme que l 'outil error Lookup

Discussions similaires

  1. � propos de "l'idiome GetLastError"
    Par r0d dans le forum C++
    R�ponses: 51
    Dernier message: 30/06/2010, 14h15
  2. R�ponses: 4
    Dernier message: 08/09/2008, 11h06
  3. Valeur retourn�e de GetLastError = 0 ?
    Par courantjet dans le forum Windows
    R�ponses: 2
    Dernier message: 30/07/2007, 10h49
  4. [MFC][C++] errno et/ou GetLastError ?
    Par matazz dans le forum MFC
    R�ponses: 3
    Dernier message: 12/05/2005, 13h50
  5. Fonction GetLastError()
    Par annedjomo dans le forum MFC
    R�ponses: 14
    Dernier message: 09/03/2005, 09h13

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