VC2005中MessageBox输出时的乱码有关问题

VC2005中MessageBox输出时的乱码问题MessageBox(L abc\0 )char*strTstrT abc\0 MessageBox((LPCTS

VC2005中MessageBox输出时的乱码问题
MessageBox(L "abc\0 ");
        char*   strT;
        strT= "abc\0 ";
        MessageBox((LPCTSTR)strT);

第一个MessageBox(以字符串常量形式)输出则正常--abc
第二个MessageBox(以变量形式)输出则错误,ab的位置为乱码--XXc
---------------------------
网上搜了一下,说是与ANSI和Unicode有关,可是却搞不太清.

这里想问,我如果想用ANSI输出时怎么办,想用Unicode输出时怎么办?
对于一个未知的字符串,我如何知道它是ANSI还是Unicode?

[解决办法]
_T( "abc ")支持unicode
[解决办法]
MessageBox(_T( "abc "));

或者
CString str;
str= "abc ";
MessageBox(str);
[解决办法]
strT=_T( "abc\0 ");
44