Bonjour, Je voudrais renseigner un PCWSTR avec le contenu d'un char* en C.
Contexte : j'ai trouvé sur Internet une fonction qui parse le contenu d'un fichier xml en C et dont voici le prototype : void parseXmlKeyFile (PCWSTR pcwstrXmlFileName);
et je voudrais lui passer un nom de fichier qui se trouve dans un char*, par exemple "toto.txt". Visiblement, je ne me pose pas la bonne question parce que je n'ai trouvé nulle part de réponse à ce problème sur Internet, mais je ne m'en sors pas. Si quelqu'un peut m'aider, ce serait très gentil.
Marie
Publicité
Posté le 13-09-2012 à 15:33:18
tpierron
Posté le 13-09-2012 à 16:01:44
Bah PCWSTR est juste un typedef pour "const wchar_t *". Il faut donc convertir ton char * en wchar_t *. Tu peux utiliser la fonction MultiByteToWideChar :
Merci.
Ton code ne marche pas tout à fait parce que MultiByteToWideChar prend en argument un LPWSTR et pas un PCWSTR, c'est-à-dire un WCHAR* et pas un CONST WCHAR*, mais ça s'arrange en introduisant une variable intermédiaire de type LPWSTR, en appelant MultiByteToWideChar dessus et en renseignant la variable de type PCWSTR avec la variable de type LPWSTR. Problème résolu.
Marie