我想将两个int型数a,b保存到WPARAM型的数中(一个函数的参数),它是32位的。高16位保存int a的值,低16位表示int b的值。怎么保存呢?另外读取时怎么从WPARAM型读取呢?谢谢啦

解决方案 »

  1.   

    int 在win32里是32位的
    short int 才是16位的,
    保存方法是
    wParam = a<<16 + b;
    取的时候
    a=HIWORD(wParam);
    b=LOWORD(wParam);
      

  2.   

    int也是32位的。如果要把两个int的低16位组成WPARAM,可以用MAKEWPARAM宏:
    WPARAM wParam = MAKEWPARAM((WORD)a, (WORD)b);
    取出时LOWORD(wParam)是低16位,HIWORD(wParam)是高16位。
      

  3.   

    int在 32位机器上是32位的,不是16位的。。
    这样子会丢数据。
      

  4.   

    我的int数据很小。用到了低16位。把a和b的低十六位传给wParam 就好了
      

  5.   

    MAKEWPARAM((WORD)a, (WORD)b);