Bonjour
Je n'arrive pas à comprendre pourquoi quand je compile :
le compilateur me dit :
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 void enregistrementErreur ( int compte, ... ) { va_list liste; va_start( liste, compte); char* text; DateTime^ DateEtHeure = gcnew DateTime; DateEtHeure = DateTime::Now; //Ouverture du fichier journal String^ path = Directory::GetCurrentDirectory() + "\\EnregistrementErreurs.txt"; StreamWriter^ sw = File::AppendText ( path ); sw->WriteLine( DateEtHeure ); for ( int i = 0; i < compte; i++ ) { text = va_arg ( liste, char* ); //ICI text = "test" par exemple sw->Write ( "essai" ); sw->Write ( text ); //warning C4800 ICI!!! ???? } sw->WriteLine(); //Cloture du fichier journal if ( sw ) delete (IDisposable^)sw; va_end( liste ); }
Là je ne comprends pas ce qu'il se passe!.\Annexes.cpp(312) : warning C4800: 'char *': valeur forcée à la valeur booléenne 'true' ou 'false' (avertissement sur les performances)
Mais pourquoi donc, la variable, char* text, est elle convertie en bool à l'éxécution de sw->Write ( text );alors que sw->Write ( "essai" ); ecrit bien "essai" dans le fichier journal?
J'ai essayé de remplacer char* text; par wchar_t text; ... là ça plante à l"éxécution! A la ligne text = va_arg ( liste, wchar_t ); j'ai :Une exception non gérée du type 'System.InvalidCastException' s'est produite dans essai.exe
Informations supplémentaires*: Le cast spécifié n'est pas valide.
Merci de m'aider
Partager