|
lenux说的对!
看了下 CString 源代码,看到底下一段:
- #ifdef _UNICODE
- CString::CString(LPCSTR lpsz)
- {
- Init();
- int nSrcLen = lpsz != NULL ? lstrlenA(lpsz) : 0;
- if (nSrcLen != 0)
- {
- AllocBuffer(nSrcLen);
- _mbstowcsz(m_pchData, lpsz, nSrcLen+1);
- ReleaseBuffer();
- }
- }
- #else //_UNICODE
- CString::CString(LPCWSTR lpsz)
- {
- Init();
- int nSrcLen = lpsz != NULL ? wcslen(lpsz) : 0;
- if (nSrcLen != 0)
- {
- AllocBuffer(nSrcLen*2);
- _wcstombsz(m_pchData, lpsz, (nSrcLen*2)+1);
- ReleaseBuffer();
- }
- }
- #endif //!_UNICODE
复制代码
如果定义了_UNICODE标识,它会把LPCSTR转换为UNICODE字符串。
不过,我却找不到 CString str = L"123"; 的定义;
就是说如果直接输入的就是UNICODE字符串,它是如何处理的。 |
|