将LPCTSTR转换为const char *,因为Unicode的问题,LPCTSTR1、在非UNICODE环境下为 const char * 2、在UNICODE环境下为 const unsigned short * 在情况2时需要借助API函数WideCharToMultiByte 代码语言:javascript 复制 代码语言:javascript 复制 intWideCharToMultiByte(UINTCodePage,// code pageDWORDdwFlags,// performance ...
方法一:可以用API:WideCharToMultiByte进行转换 方法二:可以添加文件#include <afxpriv.h> 然后这样:CString strTest = _T("abcd");USES_CONVERSION;LPSTR = T2A(strTest);
如果你用的是unicode的话,那么CString里面存储的是wchar_t*,而不是char*。你确定要把CString转换成char*的话,还要用其他的函数: constwchar_t* wstr = ( LPCTSTR )name;//一定得是unicode,否则这句话会错的 charstr[ 20 ] = { 0 }; wcstombs( str, wstr, wcslen( wstr ) ); 执行完后,str中的数...
有些函数的参数类型为const char*,而MFC编辑控件关联的变量一般为CString类型,所以在将输入内容当作函数参数传入的时候,首先要进行类型转换。 首先获得内容: //先取得控件中的内容GetDlgItemText(IDC_EDIT1,DataServer);//然后进行类型转换charc1[256]={0}; wcstombs(c1,DataServer,wcslen(DataServer));//具体函数...
//方法一 strdup //strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间 const char *cString = "i am const CString"; char *string2 = strdup(cString); NSLog(@"To char1: %s",string2); ...
你在vs2008中默认字符集是UNICODE字符集,CString中字符以wchar_t的形式来存储的,而不是char。你在项目-》属性-》配置属性 有一个字符集,可以改字符集,改成多字节字符集就行了。
从网上找了一些CString变量转换成const char*的方法,一种有效的办法是使用WideCharToMultiByte库函数进行转换。 将LPCTSTR转换为const char *,因为Unicode的问题,LPCTSTR 1、在非UNICODE环境下为 const char * 2、在UNICODE环境下为 const unsigned short *