cstring::getlength()返回的是字符个数,不是字节个数
如在Ansi字符集下,Cstring str = "abcde";
str.getlenght() = 5;
如在Unicode字符集下,Cstring str = "abcde";
str.getlenght() = 5;而不是10;
有的函数参数中要用到Cstring的length()大小,这时就要注意在不同的编码下是不一样的了
如
GlobalAlloc(GMEM_MOVEABLE, sizeof(TCHAR)*(str.GetLength()+1));
此时TCHAR是char*型,所以一般情况下我们可以写成
GlobalAlloc(GMEM_MOVEABLE,(str.GetLength()+1));
而在Unicode下就必须写成
GlobalAlloc(GMEM_MOVEABLE, sizeof(TCHAR)*(str.GetLength()+1));