Как сделать строку препроцессора, которая работает как с узкой, так и с широкой

Мне нужно создать два проекта с разными именами. Оба проекта будут использовать один и тот же код.

Поэтому я начал заменять места, которые вызывают старое имя, на препроцессор в stdafx.h с именем APP_NAME

В stdafx.h я помещаю

#define APP_NAME _T("My name") 

И когда я нахожу код вроде

function(parm1,_T("My old name have a error"));

Я хочу заменить на

function(parm1, APP_NAME _T(" have a error"));

Но при смешивании широкого (T ("x") или L "") с чисто узким ("")

ошибка C2308 появляется много ошибок: конкатенация несовпадающих строк

Можно ли применить какую-либо магию препроцессора, чтобы преодолеть это?

5
задан Brian Tompsett - 汤莱恩 20 June 2016 в 22:21
поделиться