CString与 char *之间的转换
CString与 char *之间的转换
——————————————————————————
————————————————————————
1、char * 转成 CString
char
*
str
=
"
abcd1234
"
;
//
预转换,得到所需空间的大小
int
wcsLen
=
::MultiByteToWideChar(CP_ACP, NULL, inputbuffer, strlen(inputbuffer), NULL,
0
);
//
分配空间要给'\0'留个空间,MultiByteToWideChar不会给'\0'空间
wchar_t
*
wszString
=
new
wchar_t[wcsLen
+
1
];
//
转换
::MultiByteToWideChar(CP_ACP, NULL, inputbuffer, strlen(inputbuffer), wszString, wcsLen);
//
最后加上'\0'
wszString[wcsLen]
=
'
\0
'
;
//
附加到CString对象上
CString content;
content.Append(wszString);
1、CString 转成 char *
CString str
=
_T(
"
hello kitty 12345 hello jackson
"
);
int
len
=
str.GetLength();
char
*
buffer
=
new
char
[len
+
1
];
memset(buffer,
0
,len
+
1
);
WideCharToMultiByte(CP_OEMCP, NULL, (LPCWSTR)str,
-
1
,NULL,
0
, NULL, FALSE);
WideCharToMultiByte(CP_OEMCP, NULL, (LPCWSTR)str,
-
1
,(LPSTR)buffer, len, NULL, FALSE);
buffer[len]
=
'
\0
'
;
本文详细介绍了在C++中如何实现CString与char*之间的相互转换。包括从char*转换为CString的过程及其代码示例,以及从CString转换为char*的方法,并提供了具体的实现步骤。

443

被折叠的 条评论
为什么被折叠?



