Posted on 2010-03-08 11:46
天之驕子 閱讀(2276)
評論(0) 編輯 收藏 引用
到http://www.winpcap.org/install/default.htm上面下載安裝包,到http://www.winpcap.org/devel.htm.下載winpcap開發(fā)包,解壓到指定目錄。寬帶上網(wǎng)助手就是普通的安裝包,而開發(fā)要使用的則是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文檔,里面的東西相當(dāng)全面。
如果程序出現(xiàn)如下錯誤:
F:\學(xué)習(xí)\test.cpp(155) : error C2065: ’socklen_t’ : undeclared identifier
F:\學(xué)習(xí)\test.cpp(155) : error C2146: syntax error : missing ‘;’ before identifier ’sockaddrlen’
F:\學(xué)習(xí)\test.cpp(155) : error C2065: ’sockaddrlen’ : undeclared identifier
F:\學(xué)習(xí)\test.cpp(164) : error C2065: ‘getnameinfo’ : undeclared identifier
F:\學(xué)習(xí)\test.cpp(170) : error C2065: ‘NI_NUMERICHOST’ : undeclared identifier
錯誤根由是因為WinPcap支持ipv6,而VC的winsock2.h太老了,很多結(jié)構(gòu)都沒有被支持,所以產(chǎn)生錯誤。網(wǎng)上有人說可以用VS新版本調(diào)試,我電腦里面是VS2008,但是仍然產(chǎn)生錯誤。
既然VS也無法通過,我實在沒能力去修改WinPcap的頭文件,所以就用最后一個方案,使用VC6.0的最新的PlatForm SDK開發(fā)包,里面包含了新的頭文件,就可以支持WinPcap了。
有人說PSDK只有Windows2003的版本,我在微軟里面找到了WinXPSP2的PSDK。
網(wǎng)址如下
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
里面好幾個Cab,網(wǎng)頁里面有完整的安裝說明。
下面是PlatFormSDK安裝步驟
(1)安裝過程:
CMD運行PSDK-FULL.bat,參數(shù)為一個目錄,里面會被解壓縮安裝包,然后Setup,一路Next就可以了。
(2)配置過程
打開Visual C++6.0,在選項里面連接,把PSDK安裝后的include和lib加入相應(yīng)的位置。
特別注意,要把這些目錄的順序調(diào)高,我直接放到了最高層去了。
呵呵,編譯一下,通過了,好Happy啊。