flywithlove
驱动小牛
驱动小牛
  • 注册日期2002-11-05
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望18点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:1023回复:2

高分请教,XP下编译错误?

楼主#
更多 发布于:2003-07-17 10:44
我在2000中编译usb驱动程序,运行无误,但是在xp中编译却发生错误,下面为错误代码:
f:\\winddk\\2505\\inc\\wxp\\usbioctl.h(493) : error C4200: nonstandard extension used : zero-sized array in struct/union
Compiling - pnp.cpp for i386
f:\\winddk\\2505\\inc\\wxp\\usbioctl.h(437) : error C2220: warning treated as error - no object file generated

我把下面PipeList[0]改为PipeList[1]就编译通过了,请问各位碰到这样的问题了吗?可以这样做吗?还有,很奇怪,为什么数组的长度可以是0。

typedef struct _USB_NODE_CONNECTION_INFORMATION {
    ULONG ConnectionIndex;
    /* usb device descriptor returned by this device
       during enumeration */
    USB_DEVICE_DESCRIPTOR DeviceDescriptor;
    UCHAR CurrentConfigurationValue;
    BOOLEAN LowSpeed;

    BOOLEAN DeviceIsHub;

    USHORT DeviceAddress;

    ULONG NumberOfOpenPipes;

    USB_CONNECTION_STATUS ConnectionStatus;
    USB_PIPE_INFO PipeList[0];
} USB_NODE_CONNECTION_INFORMATION, *PUSB_NODE_CONNECTION_INFORMATION;


[编辑 -  7/17/03 by  flywithlove]
痛并快乐着!
Henry
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录2011-06-20
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望27点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-17 16:42
一般来说,数组和指针的不同就在数组的成员的地址是连续的。
而数组的大小为0表示该数组的大小可变,需要根据其它的参数来确定。
驱动人生。
gjltce
驱动小牛
驱动小牛
  • 注册日期2003-07-05
  • 最后登录2011-12-10
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望59点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-17 16:50
可以这样做。
游客

返回顶部