Nous sommes en train de migrer notre application COM C++ vers l'unicode et, dans le cadre de cette migration, nous voulons également migrer les chaînes constantes de notre IDL vers l'unicode.
Le problème est qu'à l'heure actuelle, nous compilons toujours en ANSI et en UNICODE, ce qui signifie que nous ne pouvons pas utiliser la construction L "String" pour déclarer des graphiques larges.
Pour l'instant, notre constante de chaîne est définie comme suit :
const LPSTR STRING_CONST_NAME = "STRING VALUE" ;
Et nous voulons le définir comme suit :
const LP**T**STR STRING_CONST_NAME = "STRING VALUE" ;
S'il s'agissait d'un code normal, nous aurions simplement ajouté la macro _T("STRING VALUE") qui l'aurait converti en L "STRING VALUE" lors de la compilation en unicode.
Mais d'après ce que je vois, nous ne pouvons pas l'utiliser dans l'IDL car _T est une construction purement C++.
Notre approche est-elle même correcte ? Peut-être devrions-nous la définir de cette manière, quoi qu'il arrive :
const LP**T**STR STRING_CONST_NAME = L "VALEUR DE LA CHAÎNE" ;