*********谁能告诉我为什么这2个Windows宏会这样呢?HIWORD / HIBYTE******* #define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))#define HIBYTE(w) ((BYTE)(((WORD)(w) >> 8) & 0xFF))为什么要 & 0xFFFF 和 & 0xFF 啊?多此一举吗?如果不是,为什么呢?有什么好处? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是把(DWORD)(l)>>16产生的值高16位置0用的,防止使用了算术右移导致了负数的符号位为1结果让高16位为1下面一个同理可得…… 不过VC++里面对于unsigned类型的位移应该都是逻辑位移才对啊……除非怕有人修改DWORD的typedef,本来是typedef unsigned long DWORD;其实就算改成了有符号类型的位移也应该没问题的…… WORD 和 BYTE进行强制类型转换的时候不是舍弃最高位吗? 高位为0或1有什么关系? 请问一个vc访问数据库的问题? 帮忙看下这个程序有什么错啊 多线程访问同一个磁盘文件(线程同步 or 避免共享问题) vc++,在文档模式下(IDR_MAINFRAME里)实现水晶报表,怎样实现翻页 VC代码分析 光标问题,分不够可以再加500分也行?? 新手问题!请问数据结构是怎么回事? 测试 VC++怎么在程序运行时修改条形码控件的Caption内容? 程序中如何调用显示Internet选项对话框(以前看到过,现在忘了,谢谢) 请问在vc网络编程中select和sendmessage怎么使用? 怎么样阻止一个EXE文件的运行,最好有例子
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货