MFC:UNICODE下CString与char* ,string类型

2人阅读 评论(0) 收藏 举报
分类:

小菜初用MFC,就被MFC中各种类型相互转换给难住了,查了网上的一些资料,现总结如下:


Unicode下 CString 转换为 string 类型:

CString s1=L"hello";
string s2=CT2A(s1.GetBuffer());//方法一 
string s2( CW2A( s1.GetString() ) ); //方法二 
CT2CA pszName(s1); string s2(pszName);//方法三 
wstring ws(s1); string s2;  s2.assign(ws.begin(), ws.end());//方法四
//需要声明命名空间:using namespace std;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Unicode下 string 转换为 CString 类型:

string s1="hello";
CString s2=CString(s1.c_str());
  • 1
  • 2

Unicode下 CString 转换为 char* 类型:

//使用函数:T2A、W2A
CString s = _T("hello");
//声明标识符 
USES_CONVERSION;//必须要有
//调用函数,T2A和W2A均支持ATL和MFC中的字符转换 
char * c = T2A(s);    
//char * c = W2A(s); //也可实现转换
//注意:需要添加引用#include <atlconv.h>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

相应的,Unicode下 char* 转换为 CString 需用函数A2T、W2T:

char *c="hello";
USES_CONVERSION;
CString s=A2T(c);
//CString s=A2W(c);
查看评论

MFC中,Unicode和多字节字符集下 CString和char的转化

1.unicode下,转换字符串形式为_T("HelloWorld"); 2.MBCS下,转换字符串的形式为"HelloWorld"     多字节字符集 (MBCS) 是一种替代 Unico...
  • xinm1001
  • xinm1001
  • 2016-10-09 21:34:13
  • 1312

Unicode字符集下CString与char *转换 (解决中文乱码等)(转)

1、Unicode下CString转换为char * 方法一:使用API:WideCharToMultiByte进行转换              CStringstr = _T("D:\...
  • u011729425
  • u011729425
  • 2014-04-14 16:13:16
  • 1818

【MFC】 Unicode下CString和char *之间的互相转换

支持中文 使用WideCharToMultiByte(); char * CstringToChar(CString str) { int n = str.GetLength(); //获取str的...
  • nickwong_
  • nickwong_
  • 2015-12-19 01:59:24
  • 1325

C++ Cstring 转 const * char (Unicode 及非Unicode)

Unicode 编码的: 最简单的办法 #include CString m_toSend = "中文"; USES_CONVERSION; char *psz = T2A(m_toSend); 没...
  • qqIM123
  • qqIM123
  • 2016-08-30 10:38:43
  • 1422

Unicode环境下完成CString向string类型的转换

CString是MFC的字符串类,它不是基本类型,而是对字符串的封装,它是自适应的,在UNICODE环境下就是CStringW,在非UNICODE环境下就是CStringA。       CStri...
  • lishuhuakai
  • lishuhuakai
  • 2014-06-04 10:47:21
  • 5702

VC++的多字符集和unicode字符集转换大全(CString转char*等)

CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换 _T的意思是通知编译器,自行进行字符串的多字节/Unicode转换。 而L表示,该字符串为Unicode...
  • q357010621
  • q357010621
  • 2016-04-26 23:58:42
  • 1188

CString 和 const char* 的相互转化(UNICODE)

1. const char* To CString const char* c;c = "abcdef";CString s;int len = strlen(c);TCHAR* c1 = (TCHA...
  • cosair
  • cosair
  • 2010-04-12 09:14:00
  • 3048

Unicode 下char*与CString相互转换

转自:http://blog.csdn.net/neverup_/article/details/5664733 1、Unicode下CString转换为char *方法一:使用API:WideCh...
  • u010829733
  • u010829733
  • 2015-08-04 11:05:31
  • 2683

CString类型转换,字符串操作和UNICODE、ANSI字符集

CString类型转换,字符串操作和UNICODE、ANSI字符集   一.CString与LPCWSTR     两者的不同:LPCWSTR 是Unicode字符串指针,初始化时串有多大,申请...
  • kingmax54212008
  • kingmax54212008
  • 2011-12-25 16:45:56
  • 3642
    个人资料
    等级:
    访问量: 5万+
    积分: 691
    排名: 7万+
    最新评论