title: How make a preprocessor string that work with both narrow and wide
body: <p>I have to make two projects with different names. Both projects will share the same code.</p>
  
  <p>So I started replacing the places that call the old name to a preprocessor in stdafx.h called APP_NAME</p>
  
  <p>In stdafx.h I put </p>
  
  <pre><code>#define APP_NAME _T("My name") 
  </code></pre>
  
  <p>And when I find code like</p>
  
  <pre><code>function(parm1,_T("My old name have a error"));
  </code></pre>
  
  <p>I want to replace with </p>
  
  <pre><code>function(parm1, APP_NAME _T(" have a error"));
  </code></pre>
  
  <p>But, a lot of errors appear when mixing wide ( T("x") or L"") with pure narrow ("")</p>
  
  <blockquote>
    <p>error C2308: concatenating mismatched strings</p>
  </blockquote>
  
  <p>Is it possible to do any preprocessor magic to overcome it?</p>