![](https://i-blog.csdnimg.cn/blog_migrate/44bcbcaaa8caec969174345bcbfdc16f.gif)
一个CString 的变量 s 一个char *的变量 p 怎样实现 s转成p?
最佳答案
http://hi.baidu.com/yiduihaodadelaji/blog/item/ffee43240a35582dd5074248.html 1.传给未分配内存的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