我定义了一个数组 BYTE receivedata1【50】,在调试过程中receivedata1[49]应该为10,但是它好像是receivedata1[32]才是10(它把50转换为16进制了),而receivedata1【50】为0,这是怎么回事?哪位高手能告诉我。
解决方案 »
- 《Visual C++实现MPEG-JPEG编解码技术》电子书下载地址
- 编写的网页源码读取函数出错
- 写注册表问题???
- 如何得到MDI中的除了被dock bar占据外的剩余区域rect
- 怎样在界面中改变字体的大小?在线等
- 关于组件中的Char
- 这个问题很实用也很有趣,当然也“难”。。。。
- 为什么我程序中RichEdit控件在2000下能正常使用,在98下却出现乱码呢?解决了再送100分!
- (用VC或VB)开发控件或组件的时候,会自动在注册表中注册。然后我直接删掉我刚才的工程,注册表中的东西并不能清除,就成为垃圾了。请问:
- 如何引入dll文件中的类
- 如何写一个桌面程序
- 急求CD->mp3的源代码,各位多多帮忙,先谢谢啦
BYTE receivedata1[50],receivedata2[50],receivedatatemp1[100],receivedatatemp2[100];
for(BYTE kk=0;kk<100;kk++)
{
receivedatatemp1[kk]=0;
receivedatatemp2[kk]=0;
}
for(kk=0;kk<50;kk++)
{
receivedata1[kk]=0;
receivedata2[kk]=0;
}
//此处取串口的值
rec_length1=ReadComm(m_hSlave[0],receivedatatemp1,100);
rec_length2=ReadComm(m_hSlave[1],receivedatatemp2,100);
{
for(BYTE position=0;position<50;position++)
{
if((receivedatatemp1[position]==0x8e)
&&(receivedatatemp1[position+1]==0)
&&(receivedatatemp1[position+2]==1)
&&(receivedatatemp1[position+49]==0x8f))
{
for(BYTE datanumber=0;datanumber<50;datanumber++)
receivedata1[datanumber]=receivedatatemp1[position+datanumber];
break;
}
else
rec_length1=0;
}
}
//这里判断值,调试时receivedata1[0x31]结果正好是我要的第50个值,而receivedata1[50]不是
if((receivedata1[0]!=0x8e)||
(receivedata1[1]!=0)||
(receivedata1[2]!=1)||
(receivedata1[47]!=High)||
(receivedata1[48]!=Low)||
(receivedata1[49]!=0x8f))
{
SerialState1=FALSE;
}
0x32=50
vc从零开始计数的,
你的第1个是他的 receivedata1[0];也就是 receivedata1[0x0];
你的第2个是他的 receivedata1[1];也就是 receivedata1[0x1];
你的第3个是他的 receivedata1[2];也就是 receivedata1[0x2];
...
你的第49个是他的 receivedata1[48];也就是 receivedata1[0x30];
你的第50个是他的 receivedata1[50];也就是 receivedata1[0x31];有问题吗?
我看没问题。