Windows字符集和TEXT宏
8位 ANSI字符集(处理中文经常出错)
16位 Unicode字符集 - 宽字符集(WindowsNT 和 Windows 2000开始)
TEXT宏(_T宏)
TCHAR、TCHAR *、LPTSTR、LPCTSTR
API函数的两种版本
ANSI版本
Unicode版本
void CDemo1View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CView::OnLButtonDown(nFlags, point);
//ANSI字符执行速度慢
//char是ANSI
char *sa = "hello";
char szMagA[256] = "hello";
//strcat只能处理ANSI字符串
strcat(szMagA, ",ANSI");
//MFC里可以继续使用Windows SDK API函数, 函数后带A的处理ANSI字符集
::MessageBoxA(NULL, szMagA, "HELLO", MB_OK);
//wchar_t是Unicode宽字符集 必须加L, 函数后带W的处理Unicode字符集
wchar_t szMsgW[256] = L"hello";
wchar_t *sw = L"hello";
lstrcatW(szMsgW, L",Unicode");
::MessageBoxW(NULL, szMsgW, L"HELLO", MB_OK);
//自动类型,自适应类型处理字符
TCHAR szMsgT[256] = TEXT/*或者_T*/("hello");//在属性->常规->字符集中选中Unicode字符集 这个就会变成Unicode字符
LPTSTR st = TEXT("HELLO");//指针
LPCTSTR st2 = TEXT("HELLO");//常量指针
_tcscat(szMsgT, TEXT(",TCHAR"));
::MessageBox(NULL, szMsgT, TEXT("HELLO"), MB_OK);
}