To add to this , In the example below <br><br>_T(&quot;SELECT NULL FROM DUAL&quot;); expands to<br>L&quot;SELECT NULL FROM DUAL&quot;;<br><br>Thanks<br>-Neha<br><br><br><br><div class="gmail_quote">On Tue, Oct 19, 2010 at 3:10 PM, Neha Avasthy <span dir="ltr">&lt;<a href="mailto:neha.avasthy@gmail.com">neha.avasthy@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hi ,<br><br>I have a basic question w.r.t wide char literals. In the platforms I am working on WIDE chars are of size 2 bytes however the L&quot;string&quot; literals are of size wchar_t which is essentially 4 bytes.<br>
<br>
My application however expects UTF16 and thats why to make the following assignment work in the code <br><br>TCHAR    pSql[] = _T(&quot;SELECT NULL FROM DUAL&quot;);<br><br>typedef signed short        TCHAR;<br>typedef long int        wchar_t;<br>

<br>I am using the -fshort_wchar flag in the compile line . <br><br>The gcc compiler handles L as wchar_t string where wchar_t is of 2 bytes on 
Windows and of 4 <br>bytes on Unix. As application expects the unicode strings to be of 
type unsigned short - 2 bytes so to convert 2 bytes unicode string 
the -fshort-wchar flag was added. <br><br>However I figured out that <br><br>-fshort-wchar seems to be a 
compiler hack only available with gcc. <br>-fshort-wchar forces compiler (gcc) 
to treat wide charater literals as <br>unsigned short. Thats not a  part of 
language standards anyways. <br><br>This is has made my code non portable as equivalent flags are not available on other native compilers for Solaris, HPI and AIX.<br><br>If I remove the -fshort_wchar flag from the compile line I get errors like <br>

<br> error: a value of type &quot;long [22]&quot; cannot be used to initialize an entity of type &quot;TCHAR={signed short} []&quot;<br>    TCHAR    pSql[] = _T(&quot;SELECT NULL FROM DUAL&quot;);<br><br>Can somebody tell me a way of dealing with this conversion. I have to ensure that the L&quot;string&quot; treatment is that of a 2 byte quantity.<br>

<br>Thanks<br><font color="#888888">-Neha<br><br><br><br><br>
</font></blockquote></div><br>