怎么转化CString到unsigned char*

unsignedchar*strNFC;do{file.ReadString(s);if(s.Find("IRP_MJ_WRITE")>=0){str=s.Mid(s.F... unsigned char *strNFC;
do {
file.ReadString(s);
if (s.Find("IRP_MJ_WRITE")>=0)
{
str=s.Mid(s.Find("Data:")+5);
break;
}
} while(file.GetPosition()!=file.GetLength());
strNFC=new unsigned char[797];
for (int i=0;i<796;i++)
{
strNFC[i]=str.Mid(0,2);
if (str.Find(32)>=0)
{
strcpy(strNFC[i+1],str.Mid(str.Find(32)+1,2));
//strNFC[i+1]=str.Mid(str.Find(32)+1,2);
}
}总是报cannot convert parameter 1 from 'unsigned char' to 'char *'求解决
展开
 我来答
yz4330181
2011-09-06 · TA获得超过105个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:125万
展开全部
没怎么看明白你的代码,不过从函数的调用看很像MFC里面CString的字符串处理,如果是的话,那你这里面有很多问题str.Mid(str.Find(32)+1得到的还是一个CString 它不能强制转换成char*
strcpy的第一个参数需要的是char*不是unsigned char *更不是你写的strNFC[i+1]的一个字符了。
我看你是要从文件中读取字符,然后从读取的字符中拿到想要的字符,
你可以用两种方式:
1.读取的时候就用char*,整个处理都用char*
2.读取的时候用CString,整个处理都用CString,最后转换成char*
更多追问追答
追问
读的时候只能用CString,但又必须转化成unsigned char *型的,想得到数值型数组
不知道怎么去处理,求解
追答
你用CFILE读得时候就可以用char*或则ned char *,因为它的read是void*
如果你确实想用Cstring,那你把所有处理都变成CString,最后进行转换不就容易多了
如果你要用strcpy也可以,但必须和strcat一起用,并且还得声明一个指针指向new的内存,你那样写即使编译过了肯定也得不到正确结果
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式