VS2008中使用winpcap时关于头文件netioapi.h的问题


在使用winpcap是出现一个编译错误

1>stdafx.cpp
1>c:\program files\microsoft sdks\windows\v6.0a\include\netioapi.h(155) : error C2146: 语法错误 : 缺少“;”(在标识符“PhysicalMediumType”的前面)
1>c:\program files\microsoft sdks\windows\v6.0a\include\netioapi.h(155) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>c:\program files\microsoft sdks\windows\v6.0a\include\netioapi.h(155) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

google之,原因是vs2008的ntddndis.h比winpcap中新,出现不兼容的情况

解决方法有两个

1、修改VS2008中netioapi.h文件的#include <ntddndis.h>为#include “ntddndis.h”来包含本地目录的头文件

2、定义宏__IPHLPAPI_H__来避免冲突,这个好处不要修改库的头文件

你可能感兴趣的:(VS2008中使用winpcap时关于头文件netioapi.h的问题)