Combinaison d’un littéral de chaîne large avec une macro de chaîne

J’ai une macro pour une chaîne de caractères comme suit:

#define APPNAME "MyApp" 

Maintenant, je veux construire une chaîne large en utilisant cette macro en faisant quelque chose comme:

 const wchar_t *AppProgID = APPNAME L".Document"; 

Toutefois, cela génère une erreur de compilation “concaténation de chaînes incompatibles”.

Existe-t-il un moyen de convertir la macro APPNAME en un littéral de chaîne large?

As-tu essayé

 #define APPNAME "MyApp" #define WIDEN2(x) L ## x #define WIDEN(x) WIDEN2(x) const wchar_t *AppProgID = WIDEN(APPNAME) L".Document";