嗯,这个本来没有什么。
直接cout输出的是地址,通过类型转换以后输出字符串。
可是如果你用VS2005及更高版本,那么会发现,情况变了,输出了第一个字符。
这是由于缺省是_UNICODE的。
所以需要这样写:
#ifdef _UNICODE
/*这些都可以
wchar_t * pTemp = (wchar_t *)csInput.GetBuffer(csInput.GetLength());
wcout << pTemp << endl;
wcout << (wchar_t *)csInput.GetString() << endl;
wcout << (LPCTSTR)csInput << endl;
wcout << (wchar_t *)(LPCTSTR)csInput << endl;
wcout << (wchar_t *)(csInput.GetBuffer(csInput.GetLength())) << endl;
wcout << (csInput.GetBuffer(csInput.GetLength())) << endl;
*/
#else
/*这些都可以
cout << (char *)csInput.GetString() << endl;
cout << (LPCTSTR)csInput << endl;
cout << (char *)(LPCTSTR)csInput << endl;
cout << (char *)(csInput.GetBuffer(csInput.GetLength())) << endl;
cout << (csInput.GetBuffer(csInput.GetLength())) << endl;
*/
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment