BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
9 juil. 2004 à 16:13
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011
-
12 août 2005 à 18:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Rq: je ne C pas si l'erreur 0 est bien récupérée, on verra a l'utilisation
merci à ts !!!
C tellement mieux dans la langue du pays...
Magicalement!
Nono.
magic_Nono
Messages postés1878Date d'inscriptionjeudi 16 octobre 2003StatutMembreDernière intervention16 mars 2011 12 juil. 2004 à 09:46
Bj
merci pr vos com
BruNews> Je n'étais pas tombé dessus, je test de suite - merci, ++
Vecchio> à qui t'adresses tu?
Si C pr moi, ça répond à une demande & je l'ai généré quasi automatiqut dc...
pas portable :
si des sections sont spécifiques aux mfc, on peut les encadrer par des directives de précomp
si ça vient du fait que les cases sont spécifiés de maniere static, G spécifié que ça faisait parti des améliorations à venir
Black> idem
JC>
BString :: operator+=
: une concaténation de caractère, comme les CString
j'utilise mes BString car je les compile aussi bien sous Win32 que macOS, BeOS, Unix...
@+
Magicalement, Nono.
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 10 juil. 2004 à 16:59
Comment on sait que :
******************************
case 132:
rep+=" The file pointer cannot be set on the specified device or file. ERROR_SEEK_ON_DEVICE ";
break;
******************************
Qui nous dit que c'est partout vrai sur tout les windows de la planete (bon les plus utilises) ? si c'est le cas alors effectivement le code est portable, mais est-ce le cas ? si oui ou c'est specifie ?
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 10 juil. 2004 à 11:12
JCDjcd => et c'est quoi le rapport avec la portabilité ?
vecchio56 => c une classe à lui (un equivalent de CString, std::string, ...) qu'il a posé ici il y a quelque tps
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 10 juil. 2004 à 10:08
Et en plus il utilise des BString, c'est quoi ca?
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 10 juil. 2004 à 09:38
J'en ai sais rien si il y a un standard mais je suis la logique suivante :
Windows me retourne un code d'erreur avec GetLestError après il me dit que pour avoir plus d'information sr l'erreur il faut appeller FormatMessage, donc je n'essayes pas de savoir quel nombre va avec quel message (ce qui est peut etre d'ailleur suceptible de changer), j'utilise la fonction que Windows me dit de prendre pour m'assurer le bon message correspondant.
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 10 juil. 2004 à 01:05
en plus c'est pas tu tout portable cette méthode. >> ya un standard pour récupérer les erreurs ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 9 juil. 2004 à 21:00
T'es pas un peu fou de faire ca?
Même remarque pour la fonction donnée dans la MSDN, en plus avec la langue du systeme.
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 9 juil. 2004 à 17:21
C'est ce que j'allais dire, ... en plus c'est pas tu tout portable cette méthode.
Sinon j'ai une question :moi j'ai jamais ca :
rep += "toto" ?? bizzarre non ? c'est fais koi, strcat ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 juil. 2004 à 16:13
12 août 2005 à 18:11
c'est pas encore génial avec VC6
mais j'arrete, y en a qui vont parler des dinausaures....
;)
++
12 juil. 2004 à 16:19
pas assez,
G prévu de m'y pencher un de ces 4
@+
12 juil. 2004 à 12:24
=> tu connais std::string de la SL ?
12 juil. 2004 à 10:24
la fin:
...
}
return "PB dans BVisuel::expliciteLastError() ";
}
return "OK";
}
12 juil. 2004 à 10:20
voici dc la nouvelle version:
BString BVisuel::expliciteLastError()
{
/// --------------------------------------------------------------------------
/// ---------------- BVisuel::expliciteLastError() -> BString ----------------
/// --------------------------------------------------------------------------
/// ----- Objectif : donner l'explication de la derniere erreur levée (GetLastError)
/// ----- Auteur(s) : Magic Nono 02/07/04 - BruNews 12/07/04
/// ----- PreCond : /
/// ----- PostCond : /
/// ----- Etat : 1 (-1<0<1<2)
/// --------------------------------------------------------------------------
/// ----- retour (BString) : cf.obj
/// --------------------------------------------------------------------------
/// ----- Var Internes à la fonction (2) : erreur ,rep
{
LPVOID lpMsgBuf = 0;
DWORD dwErr = GetLastError();
if(dwErr)
{
FormatMessage(//
// DWORD dwFlags, // source and processing options
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,//
NULL,// LPCVOID lpSource, // pointer to message source
dwErr,// DWORD dwMessageId, // requested message identifier
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),// DWORD dwLanguageId, // language identifier for requested message
(LPTSTR) &lpMsgBuf,// LPTSTR lpBuffer, // pointer to message buffer
0,// DWORD nSize, // maximum size of message buffer
NULL);// va_list *Arguments // pointer to array of message inserts
if(lpMsgBuf)
{
BString msg=(char*)lpMsgBuf;
LocalFree(lpMsgBuf);
return (msg);
}
//if(lpMsgBuf) { MessageBox(hOwner, (LPCTSTR)lpMsgBuf, "Error", MB_ICONEXCLAMATION ); LocalFree(lpMsgBuf); }
}
return "PB dans BVisuel::expliciteLastError() ";
}
Rq: je ne C pas si l'erreur 0 est bien récupérée, on verra a l'utilisation
merci à ts !!!
C tellement mieux dans la langue du pays...
Magicalement!
Nono.
12 juil. 2004 à 09:46
merci pr vos com
BruNews> Je n'étais pas tombé dessus, je test de suite - merci, ++
Vecchio> à qui t'adresses tu?
Si C pr moi, ça répond à une demande & je l'ai généré quasi automatiqut dc...
pas portable :
si des sections sont spécifiques aux mfc, on peut les encadrer par des directives de précomp
si ça vient du fait que les cases sont spécifiés de maniere static, G spécifié que ça faisait parti des améliorations à venir
Black> idem
JC>
BString :: operator+=
: une concaténation de caractère, comme les CString
j'utilise mes BString car je les compile aussi bien sous Win32 que macOS, BeOS, Unix...
@+
Magicalement, Nono.
10 juil. 2004 à 16:59
******************************
case 132:
rep+=" The file pointer cannot be set on the specified device or file. ERROR_SEEK_ON_DEVICE ";
break;
******************************
Qui nous dit que c'est partout vrai sur tout les windows de la planete (bon les plus utilises) ? si c'est le cas alors effectivement le code est portable, mais est-ce le cas ? si oui ou c'est specifie ?
10 juil. 2004 à 11:12
vecchio56 => c une classe à lui (un equivalent de CString, std::string, ...) qu'il a posé ici il y a quelque tps
10 juil. 2004 à 10:08
10 juil. 2004 à 09:38
Windows me retourne un code d'erreur avec GetLestError après il me dit que pour avoir plus d'information sr l'erreur il faut appeller FormatMessage, donc je n'essayes pas de savoir quel nombre va avec quel message (ce qui est peut etre d'ailleur suceptible de changer), j'utilise la fonction que Windows me dit de prendre pour m'assurer le bon message correspondant.
10 juil. 2004 à 01:05
9 juil. 2004 à 21:00
Même remarque pour la fonction donnée dans la MSDN, en plus avec la langue du systeme.
9 juil. 2004 à 17:21
Sinon j'ai une question :moi j'ai jamais ca :
rep += "toto" ?? bizzarre non ? c'est fais koi, strcat ?
9 juil. 2004 à 16:13
void DisplayLastError(HWND hOwner)
{
LPVOID lpMsgBuf = 0;
DWORD dwErr = GetLastError();
if(dwErr) {
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, dwErr, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
(LPTSTR) &lpMsgBuf, 0, NULL);
if(lpMsgBuf) {
MessageBox(hOwner, (LPCTSTR)lpMsgBuf, "Error", MB_ICONEXCLAMATION );
LocalFree(lpMsgBuf);
}
}
}