Perte de la valeur d'une variable TCHAR* lors de l'appel d'une méthode d'une autre classe
Bonjour tous le monde,
J'ai deux classes NppExec et xmlConfig. La classe XMLConfiguration assure le parsing d'un fichier xml.
Dans ls classe NppExec il y a appel d'une méthode de la classe XMLConfiguration. Cette méthode prend en paramètre une variable de type TCHAR*
Le problème est que la valeur de cette variable est perdu suite à l'appel de cette méthode.
Le code de NppExec.cpp est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
void CNppExec::OnAGSDialog(TCHAR* str_iNameAGSBloc)
{
if(!_XMLConfig.GetAGSBloc(str_iNameAGSBloc)) \\str_iNameAGSBloc = "TIMER"
{
::MessageBox(NULL, LPCWSTR(str_iNameAGSBloc), LPCWSTR(str_iNameAGSBloc), MB_OK);
}
else
{
if ( PluginDialogBox(IDD_AGS_DIALOG, AGSDialogProc) == 1 )
{
}
}
} |
Le code de XMLConfiguration est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
bool XMLConfiguration::GetAGSBloc(TCHAR* str_Name)
{
TiXmlElement *elem; \\a cette instruction la valeur de str_Name est perdu
string l_NameElement;
string l_FigureName;
string l_CodeFileName;
//traitement
return false;
} |
Pour quoi la valeur est perdu?
Merci pour votre aide
conversion d'une variable de TCHAR* en string
apparemment le problème est dans le type TCHAR* de la variable. J'ai essayer de passer en paramètre une autre variable de type string et sa valeur reste intacte.
Est ce qu'il existe une méthode pour changer le type de ma variable de TCHAR* en string?
Merci d'avance