怎么转化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 *'求解决 展开
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 *'求解决 展开
1个回答
展开全部
没怎么看明白你的代码,不过从函数的调用看很像MFC里面CString的字符串处理,如果是的话,那你这里面有很多问题str.Mid(str.Find(32)+1得到的还是一个CString 它不能强制转换成char*
strcpy的第一个参数需要的是char*不是unsigned char *更不是你写的strNFC[i+1]的一个字符了。
我看你是要从文件中读取字符,然后从读取的字符中拿到想要的字符,
你可以用两种方式:
1.读取的时候就用char*,整个处理都用char*
2.读取的时候用CString,整个处理都用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的内存,你那样写即使编译过了肯定也得不到正确结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询