Bonjour,

J'ai créé une classe Language qui contient un membre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
private:
 
vector<string> Msg_Language;
J'ai un accesseur sur ce membre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
string CLanguage::Get_MsgLanguage(int idx) const
{
	return Msg_Language[idx];
}
D'autre part, j'ai créé une fonction de traduction du message :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
template<typename T>
LPCSTR get_translation(int ID_Msg,T tParameter)
{   
	static CLanguage& My_Language = CLanguage::getInstance(""); // Getting the single language instance
	string s = My_Language.Get_MsgLanguage(ID_Msg);
	return s.c_str();
}
Et j'utilise cette fonction dans :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
SetDlgItemText(hwndDlg,IDC_ENTER_NEW_RESOLUTION,get_translation(ID_MSG_ENTER_NEW_RESOLUTION,""));
Le problème est le suivant :

La variable s est tout à fait cohérente au debugging.
Par contre, la valeur retournée par get_translation elle ne l'est pas. Ma boîte de dialogue affiche du charabia ...
Même chose sur une variable intermédiaire de test : LPCSTR ss = get_translation

Si vous avez des idées ...

Merci à tous ...