CString转成char*//怎么转化?
5个回答
展开全部
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);
一个函数搞定
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);
一个函数搞定
展开全部
CString 是取决于你工程使用的是什么字节类型它就是什么类型的.
如果你使用的是非宽字节,则CString::GetBuffer() 是 const char * 类型的
如果你使用的是宽字节,则CString::GetBuffer() 是 const wchar_t* 类型的 这时你要用WideCharToMultiByte进行转换。
希望有帮助。
如果你使用的是非宽字节,则CString::GetBuffer() 是 const char * 类型的
如果你使用的是宽字节,则CString::GetBuffer() 是 const wchar_t* 类型的 这时你要用WideCharToMultiByte进行转换。
希望有帮助。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接赋值即可,内部已经重载了转换符
但要用 const char* ,
CString s="abc";
const char* p=s;
但要用 const char* ,
CString s="abc";
const char* p=s;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
.LockBuffer
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sprintf
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询