CString LPWSTR
将CString 转换到 LPWSTR转换
方法1
//将string类型转换为LPWSTR字符组类型
CString strTime = "2222";
LPWSTR strLpw = strTime.GetBuffer();
strTime.ReleaseBuffer();
方法2
CString strTime = "2222";
USES_CONVERSION
LPWSTR strLpw = A2CW(W2A(strTime ));
strTime.ReleaseBuffer();
-----------------------------------------------------------
将LPWSTR 转换到 CString
LPCWSTR lpStr = L"dasdasda";
CString str(lpcwStr);
-----------------------------------------------------------
将char * 转换到 CString
方法1
char str[10] ="123";
CString Cstr = CString(str);
方法2
char str[10] = "123";
CString Cstr = ("%s", str);
-----------------------------------------------------------
将CString 转换到 char *
CString str1 = "dasdsa";
char str[20] = str1.GetBuffer();
-----------------------------------------------------------
TCHAR到 char *转换
TCHAR Tcstr[50];
char cstr[20];
//记录 Tcstr的长度
int lengTcstr = WideCharToMultiByte(CP_ACP, 0, Tcstr, -1, NULL, 0, NULL, NULL);
//开始转换
WideCharToMultiByte(CP_ACP, 0, Tcstr, -1, cstr, lengTcstr , NULL, NULL);
-----------------------------------------------------------
string 到 CString
char cstr[20] = {0};
string sstr = "12345";
strcpy(cstr,sstr.c_str());
CString CSstr = CString(cstr);
-----------------------------------------------------------
CString 到 string
CString csstr = TEXT("你好");
string text= CW2A(csstr.GetString());
-----------------------------------------------------------
CString 初始化
方法1
//直接初始化
CString str1=“dasdadas”;
方法2
//通过构造函数
CString str2(' ',100);//预分配100字节,填充空格
方法3
//加载工程中字符串资源
//IDS_STR 句柄
CString str3;
sr3.LoadString(IDS_STR);
方法4
//使用CString类的成员函数Format初始化
CString str4;
int i=10;
str.Format(“value:%d”,i);
-----------------------------------------------------------
CString 输出
方法1
CString str = "123";
wcout << str.GetString() << endl;
方法2
CString str = "123";
wcout <<(LPCTSTR)str << endl;
方法3
CString str = "123";
wcout << str.GetBuffer() << endl;
-----------------------------------------------------------
LPWSTR输出
LPWSTR是指针 必须指向一片可以修改的内存
CString strTime = "2222";
LPWSTR strLpw = strTime.GetBuffer();
strTime.ReleaseBuffer();
wcout << strLpw << endl;
-----------------------------------------------------------
函数里面需要LPCTSTR 等等的
一个字符对应1个字节 多字节
中文 一个字符对应多个字节 宽字符 Unicode utf-8 3个 GBK 2个
-----------------------------------------------------------
多字节转为宽字节
L"aaaa"
----------------------------------------------------------
使用TEXT(“你好”) 使用TEXT是自适应编码的转换
TCHER 自使用编码的转换 TCHER (“你好”)
统计多字节长度
int num = 0;
char *p = "aaa";
num = strlen(p);
统计宽字节长度
int num = 0;
wchar_t *p = L"bbb";
num = wcslen(p);