Posted on 2010-03-08 11:46
天之骄子 阅读(2246)
评论(0) 编辑 收藏 引用
到http://www.winpcap.org/install/default.htm上面下载安装包,到http://www.winpcap.org/devel.htm.下载winpcap开发包,解压到指定目录。宽带上网助手就是普通的安装包,而开发要使用的则是Developer’s Pack。
下来之后,安装到某个目录,然后配置VC,把那个目录的include和lib两个目录放到VC的选项->目录里面。在project->settings->link->Object/library Modules下面添加“wpcap.lib Packet.lib”,用空格隔开;在project->settings->C/C++->Preprocessor difinitions下面添加“WPCAP,HAVE_REMOTE”,用逗号隔开。
WinPcap目录下有doc文档,里面的东西相当全面。
如果程序出现如下错误:
F:\学习\test.cpp(155) : error C2065: ’socklen_t’ : undeclared identifier
F:\学习\test.cpp(155) : error C2146: syntax error : missing ‘;’ before identifier ’sockaddrlen’
F:\学习\test.cpp(155) : error C2065: ’sockaddrlen’ : undeclared identifier
F:\学习\test.cpp(164) : error C2065: ‘getnameinfo’ : undeclared identifier
F:\学习\test.cpp(170) : error C2065: ‘NI_NUMERICHOST’ : undeclared identifier
错误根由是因为WinPcap支持ipv6,而VC的winsock2.h太老了,很多结构都没有被支持,所以产生错误。网上有人说可以用VS新版本调试,我电脑里面是VS2008,但是仍然产生错误。
既然VS也无法通过,我实在没能力去修改WinPcap的头文件,所以就用最后一个方案,使用VC6.0的最新的PlatForm SDK开发包,里面包含了新的头文件,就可以支持WinPcap了。
有人说PSDK只有Windows2003的版本,我在微软里面找到了WinXPSP2的PSDK。
网址如下
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
里面好几个Cab,网页里面有完整的安装说明。
下面是PlatFormSDK安装步骤
(1)安装过程:
CMD运行PSDK-FULL.bat,参数为一个目录,里面会被解压缩安装包,然后Setup,一路Next就可以了。
(2)配置过程
打开Visual C++6.0,在选项里面连接,把PSDK安装后的include和lib加入相应的位置。
特别注意,要把这些目录的顺序调高,我直接放到了最高层去了。
呵呵,编译一下,通过了,好Happy啊。