错误之文本操作中的多字节字符集与Unicode字符集

LPCTSTR 这个 会根据你是否 定义_UNICODE 来替换成不同的定义
#ifdef _UNICODE
#define LPCTSTR const wchar_t*
#else
#define LPCTSTR const char*
#endif
MessageBox 其实也有两个版本
一个是MessageBoxA 一个是MessageBoxW
如果定义了_UNICODE MessageBox 就会被替换成 MessageBoxW
MessageBoxA A 就用 char* 作为参数
W 就用wchar_t* 作为参数
多字节 没有定义_UNICODE
也就是说默认就是 用A版的函数
UNICODE 默认用的是 W版的函数
注意
在文本操作的过程中,如果出现了乱码,很有可能是_UNICODE与多字节字符集没有搞清楚,要将其转化一下,或者是::MessageBox(NULL, ch, "Text1", MB_OK),就不用进行字符转化,再者就是没有对字符数组进行初始化。
posted @ 2013-08-04 23:26  cjicl  阅读(256)  评论(0编辑  收藏  举报