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这好像是十六进制的,请问是怎么回事呢
展开
 我来答
jdq_37
2010-12-04 · TA获得超过996个赞
知道小有建树答主
回答量:658
采纳率:0%
帮助的人:951万
展开全部
C++中,BYTE其实就是unsigned char类型;
typedef unsigned char BYTE
所以取赋值“CETest”给buf,buf的内容是{'C','E','T','e','s','t','\0'}的长度,直接使用for循环
来计算,或使用strlen函数获取后加一(加上'\0')就可以得到其长度。

赋值的话,这样就可以:ch = (char*)buf;
百度网友9200c61
2010-12-06 · TA获得超过150个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:143万
展开全部
BYTE buf=(BYTE)"CETest";导致了数据丢失,应该为BYTE *buf=(BYTE*)"CETest"。
strlen(buf)获得长度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清心还深透灬柠檬5
2010-12-05 · TA获得超过816个赞
知道小有建树答主
回答量:565
采纳率:0%
帮助的人:398万
展开全部
每次读取byte[]数组长度个字节。也就是说,你byte数组长度多少。就读取多少到byte数组里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式