Comment faire pour transformer une variable en chaine UNICODE

Comment faire pour transformer une variable en chaine UNICODE - API Win32 - Programmation

Marsh Posté le 04-08-2008 à 13:10:18    

Bonjour à tous!
 
Voila comme le titre du sujet l'indique de cherche à transformer une variable en chaine UNICODE.  
Je developpe en C++.
A ce que j'ai compris on peut transformer une chaine de caractère en chaine UNICODE avec  
 

Code :
  1. TEXT("Ma chaine" );


 
ou
 

Code :
  1. L"Ma chaine";


 
mais comment le faire avec une variable(type char* par exemple)?
 
Mon code qui ne marche pas:

Code :
  1. char * MaChaine = "chaine";
  2. TEXT(MaChaine);


 
Je voue remercie!

Reply

Marsh Posté le 04-08-2008 à 13:10:18   

Reply

Marsh Posté le 04-08-2008 à 14:48:56    

L"chaîne littérale" sert à dire que la chaîne littérale est Unicode, TEXT("chaîne littérale" ) sert à ce que le code soit le même qu'on compile en ANSI ou en Unicode. Si tu veux faire pareil pour les types il faut utiliser TCHAR (si tu compiles en ANSI ça devient un char, en Unicode ça devient un wchar_t). Donc un truc comme ça :

Code :
  1. TCHAR *MaChaine = TEXT("pouet" );


---------------
dap.developpez.com
Reply

Marsh Posté le 05-08-2008 à 09:14:36    

Merci!
 
C'est bon c'est résolu.
Il fallait utiliser les fonctions mbstowcs() et wcstombs() qui convertissent les char* en wchar_t* (Unicode) et vice versa.
 
Code:

Code :
  1. wchar_t * varChaine = (wchar_t *)malloc(  BUFFER_SIZE* sizeof( wchar_t ));
  2. mbstowcs(varCahine, "chaine", 0)


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed