|
我用的是platform builder 4.2,建立的一个dll项目,作为网卡驱动。在ddk的ndis.h文件中有这样的定义:
typedef struct _NDIS30_MINIPORT_CHARACTERISTICS
{
UCHAR MajorNdisVersion;
UCHAR MinorNdisVersion;
USHORT Filler;
UINT Reserved;
W_CHECK_FOR_HANG_HANDLER CheckForHangHandler;
W_DISABLE_INTERRUPT_HANDLER DisableInterruptHandler;
W_ENABLE_INTERRUPT_HANDLER EnableInterruptHandler;
W_HALT_HANDLER HaltHandler;
W_HANDLE_INTERRUPT_HANDLER HandleInterruptHandler;
W_INITIALIZE_HANDLER InitializeHandler;
W_ISR_HANDLER ISRHandler;
W_QUERY_INFORMATION_HANDLER QueryInformationHandler;
W_RECONFIGURE_HANDLER ReconfigureHandler;
W_RESET_HANDLER ResetHandler;
union
{
W_SEND_HANDLER SendHandler;
WM_SEND_HANDLER WanSendHandler;
};
W_SET_INFORMATION_HANDLER SetInformationHandler;
union
{
W_TRANSFER_DATA_HANDLER TransferDataHandler;
WM_TRANSFER_DATA_HANDLER WanTransferDataHandler;
};
} NDIS30_MINIPORT_CHARACTERISTICS;
typedef struct _NDIS50_MINIPORT_CHARACTERISTICS
{
#ifdef __cplusplus
NDIS40_MINIPORT_CHARACTERISTICS Ndis40Chars;
#else
NDIS40_MINIPORT_CHARACTERISTICS;
#endif
//
// Extensions for NDIS 5.0
//
W_CO_CREATE_VC_HANDLER CoCreateVcHandler;
W_CO_DELETE_VC_HANDLER CoDeleteVcHandler;
W_CO_ACTIVATE_VC_HANDLER CoActivateVcHandler;
W_CO_DEACTIVATE_VC_HANDLER CoDeactivateVcHandler;
W_CO_SEND_PACKETS_HANDLER CoSendPacketsHandler;
W_CO_REQUEST_HANDLER CoRequestHandler;
} NDIS50_MINIPORT_CHARACTERISTICS;
typedef struct _NDIS40_MINIPORT_CHARACTERISTICS NDIS_MINIPORT_CHARACTERISTICS;
在我的程序中,这样使用:
NDIS_MINIPORT_CHARACTERISTICS NE2000Char;
memset(&NE2000Char,0,sizeof(NE2000Char));
NE2000Char.MajorNdisVersion = NE2000_NDIS_MAJOR_VERSION;
我的文件都是.cpp文件,在编译的时候提示MajorNdisVersion 没有定义,也就是说,定义在NDIS30_MINIPORT_CHARACTERISTICS里面的成员都没有识别(__cplusplus没有定义)。
上面的问题是我在pb 4.2中建立的项目中会出现,而在platform\XXX\drivers下手动加入.c文件,配置sources文件,在控制台下编译却没有错误。
请假各位,这是为什么?
|
|