CString转成char*//怎么转化?

 我来答
shaoqi08110820
推荐于2016-05-10 · TA获得超过2508个赞
知道大有可为答主
回答量:1514
采纳率:100%
帮助的人:1737万
展开全部
CString st=_T("123");
int nLength = st.GetLength();
int nBytes = WideCharToMultiByte(CP_ACP,0,st,nLength,NULL,0,NULL,NULL);
char* path1 = new char[ nBytes + 1];
memset(path1,0,nLength + 1);
WideCharToMultiByte(CP_OEMCP, 0, st, nLength, path1, nBytes, NULL, NULL);
path1[nBytes] = 0;
你用这个吧,有点麻烦,但是char*传化cstring 直接初始化就可以了

我试了楼上的方法也可以
CString st=_T("123");
char* p=(char*)st.LockBuffer();
st.Format(L"%s sdjf",p);
GetDlgItem(IDC_EDIT1)->SetWindowText(st);
一个函数搞定
resonly6510
2012-08-24 · 超过17用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:61.5万
展开全部
CString 是取决于你工程使用的是什么字节类型它就是什么类型的.
如果你使用的是非宽字节,则CString::GetBuffer() 是 const char * 类型的
如果你使用的是宽字节,则CString::GetBuffer() 是 const wchar_t* 类型的 这时你要用WideCharToMultiByte进行转换。

希望有帮助。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HongZe081100
2012-08-24 · TA获得超过580个赞
知道小有建树答主
回答量:436
采纳率:0%
帮助的人:439万
展开全部
直接赋值即可,内部已经重载了转换符
但要用 const char* ,
CString s="abc";
const char* p=s;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nusicvvv
2012-08-24 · TA获得超过2575个赞
知道大有可为答主
回答量:3576
采纳率:33%
帮助的人:1992万
展开全部
.LockBuffer
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
周生008
2012-08-24 · TA获得超过1222个赞
知道小有建树答主
回答量:1329
采纳率:0%
帮助的人:647万
展开全部
sprintf
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式