Ou trouver la correspondance de la valeur renvoyée par GetLastError() ?
Merci
Ou trouver la correspondance de la valeur renvoyée par GetLastError() ?
Merci
Msdn bien sur ... Tape GetLastError et dans les remarques va voir "System Error Codes"
GetLastError est il uniquement consacré aux threads??
non
sinon pour voir l'erreur rapidement, tu fais dans VC :
Tools => Error Look up, tu tappes le n° de l'erreur et zouuuu
il y a du linge sur la corde à linge
ok chef. Mais est ce que ce code correspond uniquement aux renvois de GetLastError() ????
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
il y a du linge sur la corde à linge
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
exactement. vous m avez bien aidé les gars c'est bien gentil.
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
otes moi d un doute , ce n'est pas toi qui a developpé tout ca non ???
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
ok merci bien j vai voir ca
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 );
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
<complément>Envoyé par farscape
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>
MFC ??? je deteste....
Nop. Pas de MFC la dedans. rien que des appels directs à Win32. (CreateFile, GetLastError(), FormatMessage).Envoyé par elodie escande
Le code erreur c'est evidemment GetLastError()
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.
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
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
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 );
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager