typedef void * PVOID64;typedef union _FILE_SEGMENT_ELEMENT {     
             PVOID64 Buffer;     
             ULONGLONG Alignment; 
}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;

解决方案 »

  1.   

    typedef void* PVOID64;
    是这样么
      

  2.   

    “typedef void * PVOID64;”
    放的 位置不对 吧?
    头文件 ?
      

  3.   


     error C2182: “Buffer”: 非法使用“void”类型
    都是在同一个.cpp文件内呀
      

  4.   

    1.看看 PVOID64 是否已经有定义;
    2.PVOID64 Buffer;使用 可能 有问题。
    因为 union 的 成员 必须等长。
    而 void *PVOID64,并没有 长度信息,
    你想要 8字节长度的指针吗 ? 
      

  5.   

    union 的成员必须等长谁说的?PVOID64 在这里很明显是一个指针,那么长度就已经确定下来了。不过你说的第一个点我觉得可能,这个微软很有可能已经定义过了。
      

  6.   

    因为 union 的 成员 通常等长。
    楼主在这里是要个 8字节的 指针吧。
    void *PVOID64 只是 4字节指针如果 64 位 环境 就达到目的了。
      

  7.   

    我查了 这是系统 :
    “winnt.h”
    中的 代码 
    ////////////////////////////////////
    typedef union _FILE_SEGMENT_ELEMENT {
        PVOID64 Buffer;
        ULONGLONG Alignment;
    }FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
    //////////////////////////////////////
    typedef void *PVOID;
    typedef void * POINTER_64 PVOID64;
    /////////////////////////////////////
    typedef void *PVOID64;//没错
    FILE_SEGMENT_ELEMENT //union' type redefinition
      

  8.   

    vs08编译不过啊 我手动改头文件里的 改成void*了
      

  9.   

    既然是
    “winnt.h”
    有定义。
    你就不要定义了。
    直接使用就可以了。
    08 不会没有 “winnt.h”
    吧?
      

  10.   

    产生兼容的位图(CreateCompatibleBitmap)要 看 与 谁 兼容。
    所谓兼容 就是 格式 兼容,
    即 那个 DC
    如果 这个 DC 是 memDC 那就 产生 一个 黑白位图,因为 memDC 默认是 单色DC,
    如果 这个 DC 是 客户区DC 那就 产生 一个 彩色位图。
    CreateCompatibleBitmap 要给出 宽高, 一般 不会是 1*1.
      

  11.   

    我说的不是长*宽 是一个点的位数(比如8位、24位)//不是位数越多表示的颜色越丰富吗???
    CreateCpmpatibleDC 是 产生一个 内存DC ,这个内存dc 刚开始创建时 有 一个 默认的 1点 黑白 单色 位图。如果 你不为他 创建 一个 兼容的 彩色 位图,那么对这个内存DC的 绘图操作 (如 setpixel) 只能 产生 黑白的 位图。createcompatibledc创建hdc;用这个hdc生成的bmp 一个点的位数就1位吧(黑白图);所以,要加载
    一张兼容的 彩色 hdc创建的点位数高的位图进去;setpixel才能管用
    不是这原理吗?????????????
      

  12.   

    “createcompatibledc创建hdc;用这个hdc生成的bmp 一个点的位数就1位吧(黑白图);所以,要加载
    一张兼容的 彩色 hdc创建的点位数高的位图进去;setpixel才能管用”
    你不是已经明白了吗?彩色位图 现在 很少 有 《8位的 (256)色 ,
      

  13.   

    另外:
    使用:
    GetDeviceCapsule(hdc,BITSPIXEL);
    得到 客户区DC 的 bpp (bits per pixel)
      

  14.   

    严重不相信msdn呀!!!
    我看下msdn的getdc函数没有说是彩色的设备啊//或者说与craetecompatiblebitmap的区别比较msdn里有吗???