笑看风云淡

宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒
posts - 96, comments - 48, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 ::  :: 聚合  :: 管理

WinPcap和VC的配置

Posted on 2010-03-08 11:46 天之骄子 阅读(2185) 评论(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啊。


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理