7 votes

Impossible de convertir le paramètre 1 de 'const char *' en 'LPCWSTR'.

J'ai un code simple qui fait des choses pour les fichiers et j'essaie de le porter sur Windows. J'ai quelque chose qui ressemble à ceci :

int SomeFileCall(const char * filename){
#ifndef __unix__
    SomeWindowsFileCall(filename);
#endif
#ifdef __unix__
    /**** Some unix only stat code here! ****/
#endif
}

la ligne SomeWindowsFileCall(filename); provoque l'erreur du compilateur : cannot convert parameter 1 from 'const char *' to 'LPCWSTR'

Comment puis-je résoudre ce problème, sans modifier le SomeFileCall prototype ?

0voto

Claptrap Points 21299

Je ne sais pas quel compilateur vous utilisez, mais dans Visual Studio, vous pouvez spécifier le type de caractère par défaut, qu'il soit UNICODE ou multibyte. Dans votre cas, il semble que UNICODE soit le type par défaut. La solution la plus simple est donc de vérifier si votre compilateur détermine le type de caractère par défaut, ce qui vous épargnerait du travail, sinon vous finiriez par ajouter du code pour convertir le type de caractère UNICODE, ce qui pourrait ajouter une surcharge inutile et constituer une source d'erreur supplémentaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X