MFC中怎样把CString类型转换成char*型

 时间:2026-02-14 06:22:08

1、第一种方法如代码所示,

CString strTemp;char szTemp[128];strTemp = _T("abckdkfei");memset( szTemp, 0, sizeof(szTemp) );strcpy( szTemp, strTemp.GetBuffer(strTemp.GetLength()) );

MFC中怎样把CString类型转换成char*型

2、第二种方法可以使用(LPSTR)(LPCSTR)强转,

char * pchar;CString str="hello";pchar=(LPSTR)(LPCSTR)str;

但是有时候因为编码的问题会出现错误。

MFC中怎样把CString类型转换成char*型

3、第三种方法代码如下所示,

char szTemp[500];CString strTemp = "123456789";memset(szTemp,0,sizeof(szTemp));sprintf(szTemp,"%s",strTemp);

MFC中怎样把CString类型转换成char*型

4、第四种方法,如果是基于UNICODE的,那么直接强制转换是不行的,直接转换在基于MBCS的工程可以,而在基于UNICODE的工程是不行的,CString会以UNICODE的形式来保存数据,强制类型转换只会返回第一个字符。d

方法一:可以用API:WideCharToMultiByte进行转换方法二:可以添加文件#include <afxpriv.h>然后这样:CString strTest = _T("abcd");USES_CONVERSION;LPSTR lpszTest= T2A(strTest);这样应该可以的。

MFC中怎样把CString类型转换成char*型

5、第五种最笨的办法可以把CString 先转换成String 再转换成 char *。但是好多时候很麻烦也会出现各种错误。

MFC中怎样把CString类型转换成char*型

6、第六种办法比较麻烦,可以试试WideCharToMultiByte,这种方法一般都有效。

CString str;

 DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,str,-1,NULL,NULL,0,NULL); 

char *c = new char[dwNum];WideCharToMultiByte(CP_OEMCP,NULL,str,-1,c,dwNum,0,NULL

MFC中怎样把CString类型转换成char*型

  • pytorch如何加载已经训练好的模型?
  • navicat操作手册帮助文档如何查看和检索
  • mysql如何修改表的名称
  • Mac MySQL学习教程 之 Workbench向表中添加数据
  • IntelliJ IDEA如何配置文件索引
  • 热门搜索
    白前的功效与作用 北欧知识城 人无完人什么意思 枸杞茶的功效与作用 阿胶的功效与作用 你在等什么 电感的作用 西洋参的功效与作用 allen什么意思 旱莲草的功效与作用