c++如何获取字节BYTE的长度?
c++如何获取字节BYTE的长度?如:BYTEbuf=(BYTE)"CETest";我怎么获取buf的长度呢?还有怎么把BYTE类型转换为char*指针类型呢?如char...
c++如何获取字节BYTE的长度?
如:BYTE buf=(BYTE)"CETest";
我怎么获取buf的长度呢?
还有怎么把BYTE类型转换为char*指针类型呢?
如 char* ch;
如果把buf的值赋给ch呢?
请教了,我QQ是:523716390。
为什么我把BYTE类型字节要输出到控制台时,得到的并不是我要的字节呢?如一个方法:void WriteCOM(BYTE *buf, DWORD bufLen)
{
DWORD dwNumBytesWritten;
DWORD dwHaveNumWritten=0;
iWrite++;
int iInc=0;//如果3次写入不成功,返回
do
{
if(WriteFile(hComm,/*串口句柄*/
buf+dwHaveNumWritten,/*被写入数据缓冲区*/
bufLen-dwHaveNumWritten,/*被写入数据缓冲区大小*/
&dwNumBytesWritten,/*函数执行后,返回实际向串口写的字个数*/
NULL))
{
dwHaveNumWritten=dwHaveNumWritten+dwNumBytesWritten;
//写入完成
if(dwHaveNumWritten==bufLen)
{
cout<<"Written "<<iWrite<<":"<<&buf<<endl;
break;
}
iInc++;
if(iInc>=3)
{
return ;
}
Sleep(10);
}
}while(TRUE);
}
其中:cout<<"Written "<<iWrite<<":"<<&buf<<endl;这里输出的不是我传入参数的字节"CETest"。
比如我调用方法
BYTE buf=(BYTE)"CETest";
char chBuf=buf;
WriteCOM(&buf,strlen(&chBuf));
而输出的是:001AFB10这好像是十六进制的,请问是怎么回事呢 展开
如:BYTE buf=(BYTE)"CETest";
我怎么获取buf的长度呢?
还有怎么把BYTE类型转换为char*指针类型呢?
如 char* ch;
如果把buf的值赋给ch呢?
请教了,我QQ是:523716390。
为什么我把BYTE类型字节要输出到控制台时,得到的并不是我要的字节呢?如一个方法:void WriteCOM(BYTE *buf, DWORD bufLen)
{
DWORD dwNumBytesWritten;
DWORD dwHaveNumWritten=0;
iWrite++;
int iInc=0;//如果3次写入不成功,返回
do
{
if(WriteFile(hComm,/*串口句柄*/
buf+dwHaveNumWritten,/*被写入数据缓冲区*/
bufLen-dwHaveNumWritten,/*被写入数据缓冲区大小*/
&dwNumBytesWritten,/*函数执行后,返回实际向串口写的字个数*/
NULL))
{
dwHaveNumWritten=dwHaveNumWritten+dwNumBytesWritten;
//写入完成
if(dwHaveNumWritten==bufLen)
{
cout<<"Written "<<iWrite<<":"<<&buf<<endl;
break;
}
iInc++;
if(iInc>=3)
{
return ;
}
Sleep(10);
}
}while(TRUE);
}
其中:cout<<"Written "<<iWrite<<":"<<&buf<<endl;这里输出的不是我传入参数的字节"CETest"。
比如我调用方法
BYTE buf=(BYTE)"CETest";
char chBuf=buf;
WriteCOM(&buf,strlen(&chBuf));
而输出的是:001AFB10这好像是十六进制的,请问是怎么回事呢 展开
3个回答
展开全部
BYTE buf=(BYTE)"CETest";导致了数据丢失,应该为BYTE *buf=(BYTE*)"CETest"。
strlen(buf)获得长度。
strlen(buf)获得长度。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每次读取byte[]数组长度个字节。也就是说,你byte数组长度多少。就读取多少到byte数组里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询