-
Conversion CString WCHAR
bonjour,
Je suis en train de développer une application vocale que je voudrais intégrer dans une application faite avec les MFC.
Je dois envoyer a mes méthodes une chaîne de caractères de type WCHAR pour qu'elles fonctionnent.
Je souhaite récupérer une phrase via l'application mais celle ci me crée une CString.
J'ai cherché sur le net une façon de convertir cette CString en WCHAR mais je n'ai pas trouvé.
Si quelqu'un connait un méthode,
Merci d'avance
-
WCHAR est un caractère 16 bits unicode alors que le CString est une classe MFC qui correspond à une chaîne de caractères complète.
Donc le CString que tu récupères doit être envoyé soit dans un tableau de WCHAR, soit dans un WCHAR*.
De plus, il faut savoir si tu es en UNICODE ou en ANSI. Le principe, c'est de faire une copie du buffer correspondant au CString dans l'espace mémoire de ta chaîne en WCHAR. Seulement, il faut savoir dans quel cas tu te situes, car l'unicode te donne des caractères en 16bits alors que l'ansi t'en donne en 8bits...
Tiens-moi au courant!
-
Avec une version récente de MFC, tu peux utiliser une CStringW qui est toujours constituée de WCHARs.
Et là, tu pourras librement utiliser l'opérateur de conversion en LPCWSTR (const WCHAR *) ou si nécessaire, la fonction membre GetBuffer() qui t'offre un LPWSTR (WCHAR *)...