首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

此操作的操作数类型异常

2012-04-06 
此操作的操作数类型错误C/C++ codeBYTE* palloc...DWORD dw...ULONG IdxPt...do{Sleep(2000)}while

此操作的操作数类型错误

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是指向字节的指针,你位与之后,要进行移位操作

热点排行