阅读:1023回复:2
高分请教,XP下编译错误?
我在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] |
|
|
沙发#
发布于:2003-07-17 16:42
一般来说,数组和指针的不同就在数组的成员的地址是连续的。
而数组的大小为0表示该数组的大小可变,需要根据其它的参数来确定。 |
|
|
板凳#
发布于:2003-07-17 16:50
可以这样做。
|
|