读书人

此操作的操作数类型异常

发布时间: 2012-04-06 12:22:24 作者: rapoo

此操作的操作数类型错误

C/C++ code
BYTE* p=alloc...;DWORD dw=...;  ULONG IdxPt=...;do{Sleep(2000);}while(p[IdxPt]!=(dw&0xff0000) || p[IdxPt+1]!=(dw&0xff00) || p[IdxPt+2]!=(dw&0xff));

需要将dw每8位分别判断值
dw&0xff0000等用法有何不当?

[解决办法]
LOWORD/HIWORD/LOBYTE()/HIBYTE();
[解决办法]
lz说的是用宏

不过你也可以自己实现

比如:按位与运算,

short c=0x1230; //16进制

c&=0x00ff;


这样的话,可以获得你的低8位,其他就是移位,再与运算

楼上的方法较好,是windows 提供的宏


[解决办法]
dw&0x00ff0000ul
[解决办法]
while(p[IdxPt]!=(dw&0xff0000) || p[IdxPt+1]!=(dw&0xff00) || p[IdxPt+2]!=(dw&0xff));
p是指向字节的指针,你位与之后,要进行移位操作

读书人网 >C++

热点推荐