永发信息网

vc++中如何将 ‘CString’ 转换成 ‘ char * ’ 类型?

答案:2  悬赏:0  手机版
解决时间 2021-04-01 06:16
vc++中如何将 ‘CString’ 转换成 ‘ char * ’ 类型?
最佳答案
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); //将数组的垃圾内容清空.
全部回答
char* pc = a.GetBuffer(a.GetLength+1);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
vb6页面报错 急解决方案怎么解决
安装ubuntu16.04后 怎么安装回win7
悦诗风吟森林男士剃须洁面泡沫怎么样
Google 的产品标识设计得好吗?为什么?
用FLASH还是PS做手撕日历的效果,怎么做,有
塑料制品上1号到5号哪个表示质量最好的
蛀牙跟缺钙有关吗?拜托了各位 谢谢
30以内的整勾股数?
为何QQ空间私密说说没有“转为公开”这一设置
真空包装的银杏仁如何食用?
算命的,说在家做太太,想夫福。是什么意思?
下面是发掘杭州雷峰塔地宫的一段报道。请将关
从谈迁他们顽强不屈战胜挫折的历程中,我想到
一个孤,一个人手拿喇叭.猜成语
想把胳膊上的纹身洗净有没有不带疤痕的?
推荐资讯
诸葛古镇国庆节去玩适合吗?
染头发后发梢,发根颜色不一致,想都变成浅色
求一剑灵图。图片上的一个人物手臂上纹身是佛
有关于吊竹梅的诗吗?急!
大型红枸杞色选机一台多少钱?
不再是旧日熟悉的你有着旧日狂热的梦,歌名是?
拳皇97神乐好打疯八吗
工厂里面(估计是设备方面的)有一个职位是PM
铁包金泰迪是什么,值多少钱
求13G322 钢筋混凝土过梁图集
我是73年i2月4日出生的,请问今天财运如何
银氨溶液放置转化成易爆的AgN3,Ag2NH,AgNH2
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?