MFC CString转char*

小新蜡笔 2015-04-24 02:37:34
如题

CString.Getbuffer已用,无效。

m_edit.GetWindowText(m_str);

char *pstr = m_str.GetBuffer(m_str.GetLenth());

无法进行转换。

麻烦各位能告知下方法,谢谢。
...全文
224 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小新蜡笔 2015-04-24
  • 打赏
  • 举报
回复
引用 2 楼 tpnndhqc 的回复:
一般有下面N种。 1.传给未分配内存的const char* (LPCTSTR)指针. CString cstr(asdd); const char* ch = (LPCTSTR)cstr; // ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全. 2.传给未分配内存的指针. char *ch = cstr1.GetBuffer(cstr1.GetLength() + 1); cstr1.ReleaseBuffer(); //修改ch指向的值等于修改cstr里面的值. //PS:用完ch后,不用delete ch,因为这样会破坏cstr内部空间,容易造成程序崩溃. 3.第三种用法。把CString 值赋给已分配内存的char *。 int strLength = cstr1.GetLength() + 1; char *pValue = new char[strLength]; strncpy(pValue, cstr1, strLength) ; 4.第四种用法.把CString 值赋给已分配内存char[]数组. int strLength1 = cstr1.GetLength() + 1; char chArray[100]; memset(chArray,0, sizeof(bool) * 100); //将数组的垃圾内容清空. 5.第五种用法 char* data=new char[MAX]; CString m_unicode; WideCharToMultiByte(CP_ACP,NULL,m_unicode,m_unicode.GetLength()+1,data,MAX,NULL,NULL);
非常感谢。。。。
Sping 2015-04-24
  • 打赏
  • 举报
回复
楼主大人,方法够了么。。。
Sping 2015-04-24
  • 打赏
  • 举报
回复
一般有下面N种。 1.传给未分配内存的const char* (LPCTSTR)指针. CString cstr(asdd); const char* ch = (LPCTSTR)cstr; // ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全. 2.传给未分配内存的指针. char *ch = cstr1.GetBuffer(cstr1.GetLength() + 1); cstr1.ReleaseBuffer(); //修改ch指向的值等于修改cstr里面的值. //PS:用完ch后,不用delete ch,因为这样会破坏cstr内部空间,容易造成程序崩溃. 3.第三种用法。把CString 值赋给已分配内存的char *。 int strLength = cstr1.GetLength() + 1; char *pValue = new char[strLength]; strncpy(pValue, cstr1, strLength) ; 4.第四种用法.把CString 值赋给已分配内存char[]数组. int strLength1 = cstr1.GetLength() + 1; char chArray[100]; memset(chArray,0, sizeof(bool) * 100); //将数组的垃圾内容清空. 5.第五种用法 char* data=new char[MAX]; CString m_unicode; WideCharToMultiByte(CP_ACP,NULL,m_unicode,m_unicode.GetLength()+1,data,MAX,NULL,NULL);
sumos 2015-04-24
  • 打赏
  • 举报
回复
const TCHAR* ch = m_str.operator LPCTSTR();

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧