Ответ 1
Попробуйте следующее:
#define WIDEN_(exp) L##exp
#define WIDEN(exp) WIDEN_(exp)
#define TITLE "Title"
#define W_TITLE WIDEN(TITLE)
Вам нужно принудительно расширить промежуточный макрос, чтобы получить то, что вы ищете.
#include <stdio.h>
#define WIDEN_(exp) L##exp
#define WIDEN(exp) WIDEN_(exp)
#define TITLE "Title"
#define W_TITLE WIDEN(TITLE)
int main(int argc, char *argv[])
{
printf("%s\n", TITLE);
wprintf(L"%ls\n", W_TITLE);
return 0;
}
Результат:
Title
Title