一、char*转为CString

如果工程使用多字节字符集

CString str;
char sz[]="你好!";
str.Format("%s",sz);//利用Format函数
str=(CString)sz;    //强制转换

如果工程使用Unicode字符集

第一种是使用API函数MultiByteToWideChar进行转换

char * pFileName = "世界,你好!";
//计算char *数组的大小,以字节为单位,一个汉字占两个字节
int charLen = strlen(pFileName);
//计算多字节字符的大小,按字符计算
int len = MultiByteToWideChar(CP_ACP, 0, pFileName, charLen, NULL, 0);
//为宽字节字符数组申请空间大小,数组大小为按字节计算的多字节字符的大小
TCHAR *buf = new TCHAR[len + 1];
//多字节编码转换为宽字节编码
MultiByteToWideChar(CP_ACP, 0, pFileName, charLen, buf, len);
buf[len] = '\0';
//将TCHR数组转换为CString
CString str;
str.Append(buf);
//删除缓冲区
delete[]buf;

第二种方法是使用函数A2T或A2W;

char *p = "世界,你好!";
USES_CONVERSION;//这个宏在atlbase.h中定义
CString s = A2T(p);
CString s2 = A2W(p);

二、CString转为char*

如果工程使用多字节字符集

CString str="长城";
char *p=(LPSTR)(LPCTSTR)str;//强制转换
p=str.GetBuffer();

如果工程使用Unicode字符集

第一种是使用API函数WideCharToMutiByte进行转换

CString str = _T("世界,你好!");//n以字符计算,len以字节计算,二者数值不同
int n = str.GetLength();
int len = WideCharToMultiByte(CP_ACP, 0, str, str.GetLength(), NULL, 0, NULL, NULL);char * pFileName = new char[len + 1];
//宽字节编码转换成多字节编码
WideCharToMultiByte(CP_ACP, 0, str, str.GetLength(), pFileName, len, NULL, NULL);pFileName[len] = '\0';//多字节字符串以\0结束

第二种方法是使用函数A2T或A2W;

CString str = _T("世界,你好!Hello World");
USES_CONVERSION;//这个宏在atlbase.h中定义
char *p = T2A(str);
char *q = W2A(str);

MFC中CString转为char*;char*转为CString相关推荐

  1. MFC中char*,string和CString之间的转换

    string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的: char*是从学习C语言开始就已经和我们形影不离的了,有许多API都是以char*作为参数输入的.所以熟练掌握三者之间的转换十 ...

  2. MFC中CString转换成char数组的问题

    由于结构体中用到联合体(联合体需要确定分配内存分配大小)或其它因素,需要用char数组来保存字符串,但是在MFC中一般都是用CString来存放字条串.关于它们之间的转换,在VS2008中有时会出现异 ...

  3. cstring转为string vc_VC之CString,wchar_t,int,string,char*之间的转换-阿里云开发者社区

    VC之CString,wchar_t,int,string,char*之间的转换 1. CString 转 wchar_t CString path = "asdf"; wchar ...

  4. MFC中CString类字符串与长整型、浮点型、字符数组char数据之间的相互转换

    一.长整型数据与CString类字符串相互转换 1.将长整型数据转换为CString字符串类 CString str; long ld; str.Format(_T("%ld"), ...

  5. MFC中CString,int,string,char * ,char[] 之间互转

    <1> (1)string 转 CString  CString.format("%s", string.c_str());   (2)char 转 CStri ...

  6. MFC中char*与CString的互相转换

    CString->char* CString str = _T("1234"); USES_CONVERSION; char* p = T2A(str.GetBuffer(0 ...

  7. MFCC中CString, int, string, char之间的转换

    1.    CString  -->  char* (1)传给未分配内存的指针 CString cstr ="ASDDSD"; char *ch =cstr.GetBuffe ...

  8. MFC有效解决char数组转CString乱码问题

    // ANSI To UNCODE转换 CString CATP_SIMDoc::AnsiToUnicode(char * szAnsi, int len) { CString str; // ans ...

  9. MFC中CString.format用法

    MFC中CString.Format的详细用法 收藏  在MFC程序中,使用CString来处理字符串是一个很不错的选择. CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的 ...

最新文章

  1. Linux系统启动级别及grub配置(一)
  2. 8086标志寄存器FLAG
  3. 王爽 汇编语言第三版 第11章 标志寄存器
  4. C++中用vectors改进内存的再分配
  5. SpringBoot-JPA删除不成功,只执行了查询语句
  6. C++输出=号右边所有的值
  7. 从博客专栏想到的数据分析
  8. C# 设计模式巩固笔记 - 建造者模式
  9. Android lint工具 检查的常见问题
  10. Java虚拟机(JVM)字节码指令表
  11. 浅谈Innodb存储结构(Buffer Pool、Double Write Buffer、Change Buffer、Redo log、Undo Log、自适应索引.......)
  12. 2013年IT界25个最古怪的面试题
  13. php主机卫士,Bypass 360主机卫士SQL注入防御(多姿势)
  14. MASM调试汇编代码(命令行方式)
  15. 数据分析:你的城市复工了吗?
  16. 抑郁症最新研究进展(2021年11月)
  17. PLC实验—西门子S7 1200读取旋转编码器数据并计算电机转速
  18. Blender展UV插件:UVSquares
  19. 密码技术---分组密码的模式
  20. html打印预览出现重叠,打印预览下面的怎么会重叠在上面

热门文章

  1. 《高数》基本初等函数 反对幂三指 (二)
  2. 计算机985博士带进高校的配偶,部分本科、全国985硕士、博士应届毕业生可直接落户上海...
  3. 广州校园速递 | [线上分享会] 香港科技大学2.0: 广州新校园筹备概况
  4. 中国基因工程药物产业应用市场需求及投融资动态分析报告2021-2027年
  5. openresty出现socket read/write busy的原因及解决方法
  6. NBIOT模组M5310接入OneNET平台
  7. nii数据的各种处理详解
  8. Java 碰壁小球游戏实例教程
  9. 客运售票员_汽车站售票员工作心得体会
  10. 系统报错信息:[0x7FFA30288660] ANOMALY: meaningless REX prefix used