CString 转char *

来源:互联网 发布:织梦cms教程pdf 编辑:程序博客网 时间:2024/05/06 18:56

 

悬赏分:20 - 解决时间:2009-4-24 01:47
一个CString 的变量 s一个char *的变量 p怎样实现 s转成p? 
提问者: youyutian - 四级
最佳答案
http://hi.baidu.com/yiduihaodadelaji/blog/item/ffee43240a35582dd5074248.html1.传给未分配内存的const char* (LPCTSTR)指针.    CString cstr(asdd);   const char* ch = (LPCTSTR)cstr;   ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全.2.传给未分配内存的指针.    CString cstr = "ASDDSD";    char *ch = cstr.GetBuffer(cstr1.GetLength() + 1);    cstr.ReleaseBuffer();    //修改ch指向的值等于修改cstr里面的值.    //PS:用完ch后,不用delete ch,因为这样会破坏cstr内部空间,容易造成程序崩溃.3.第二种用法。把CString 值赋给已分配内存的char *。    CString cstr1 = "ASDDSD";    int strLength = cstr1.GetLength() + 1;    char *pValue = new char[strLength];    strncpy(pValue, cstr1, strLength);4.第三种用法.把CString 值赋给已分配内存char[]数组.    CString cstr2 = "ASDDSD";    int strLength1 = cstr1.GetLength() + 1;    char chArray[100];    memset(chArray,0, sizeof(bool) * 100); //将数组的垃圾内容清空. 

参考资料:http://www.programfan.com/blog/article.asp?id=23724
原创粉丝点击