欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[MFC]CString对象的提高

程序员文章站 2022-06-10 20:27:21
...

一、其他类型与 CString 对象类型的转换

1. 格式化字符串

int、TCHAR * 向CString类型的转换

int num = 100;
CString str;
str.Format(_T("%d"), num);
2. CString向 int、TCHAR * 类型的转换
CString str1(_T("123"));
int num = _ttoi(str1);

TCHAR *pszBuf = str.GetBuffer();
str.ReleaseBuffer(); //GetBuffer与ReleaseBuffer成对出现

TCHAR *p = (LPTSTR)(LPCTSTR)str;

3. CString 对象的 Ansi 与 Unicode 转换
CString str;
str = _T("abc");
char *p = "defg";//窄字节
str = p;

wchar *pW = "defg";//宽字节
str = pW;

二、CString对象字符串所占用的字节数

 CString str = _T("abc");
 错误的求法:sizeof(CString)sizeof(str)
 正确的求法:str.GetLength()*sizeof(TCHAR)

当作为 TCHAR * 类型传参时,确保申请了足够用的空间,比如使用 GetModuleFileName 函数;

CString strTemp;
GetModuleFileName(NULL, strTemp.GetBufferSetLength(MAX_PATH), MAX_PATH);
strTemp.ReleaseBuffer();
相关标签: VS 2017/MFC