|
楼主 |
发表于 2016-1-3 15:11:36
|
显示全部楼层
typedef union {
double f;
char c[8];
} DOU_CONV;
double Change(double val) {
DOU_CONV ac, ac1;
ac.f = val;
ac1.c[0] = ac.c[7];
ac1.c[1] = ac.c[6];
ac1.c[2] = ac.c[5];
ac1.c[3] = ac.c[4];
ac1.c[4] = ac.c[3];
ac1.c[5] = ac.c[2];
ac1.c[6] = ac.c[1];
ac1.c[7] = ac.c[0];
return ac1.f;
}
char szBuf[128];
void __fastcall TForm1::ScrollBarChange(TObject *Sender) {
// 重点是Qt 写的数据int double 大小端是与BCB,VC反的
nVal[0] = ScrollBar1->Position;
nVal[1] = ScrollBar2->Position;
nVal[2] = ScrollBar3->Position;
nVal[3] = ScrollBar4->Position;
nVal[4] = ScrollBar5->Position;
nVal[5] = ScrollBar6->Position;
check1 = 0;
for (int i = 0; i < 6; i++) {
nVal = Change(nVal); // 大小转换
check1 += nVal;
}
nSize[0] = 0x06000000;
nSize[1] = 0x01000000;
if (!ClientSocket1->Active)
ClientSocket1->Open();
if (ClientSocket1->Active)
if (check2 != check1) { // 数据不同才发
ClientSocket1->Socket->SendBuf(&nSize, sizeof(int)*2);
ClientSocket1->Socket->SendBuf(&nVal, sizeof(double)*6);
check2 = check1;
ClientSocket1->Close();
Sleep(20);
}
}
用Socket 打开 127. 0.0.1, 2001.
[int32][int32][double][double][double][double][double][double]
关Socket
数据为: 6,1, 1.23, 1.23, 1.23, 1.23, 1.23, 1.23
共8个数: 2个整型固定, 6个浮点型.
如果用Qt Gcc.
附上我用XE10, 也就是BCB写的测试源码. 有什么问题,大家再交流.
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|