winpcap 4.1.2
為了跑起來剛開始的例子
#include "pcap.h"
main()
{
pcap_if_t *alldevs;
pcap_if_t *d;
int i=0;
char errbuf[PCAP_ERRBUF_SIZE];
/* 獲取本地機器設備列表 */
if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */, &alldevs, errbuf) == -1)
{
fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf);
exit(1);
}
/* 打印列表 */
for(d= alldevs; d != NULL; d= d->next)
{
printf("%d. %s", ++i, d->name);
if (d->description)
printf(" (%s)\n", d->description);
else
printf(" (No description available)\n");
}
if (i == 0)
{
printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
return;
}
/* 不再需要設備列表了,釋放它 */
pcap_freealldevs(alldevs);
}
首先,既然有了#include "pcap.h" 需要設置下文件包含,方法如下:
1.菜單Tool->Options->Directories選項卡->Show directories->Include files,選擇WinPcap中的開發包目錄中的Include目錄
2.菜單Tool->Options->Directories選項卡->Show directories->Library files,選擇WinPcap中的開發包目錄中的Lib目錄
3.菜單Project->Settings->Link->Objects/library modules,按End鍵,輸入" wpcap.lib",注意wpcap.lib 前面有空格(或#pragma comment(lib,"wpcap.lib") )
然后,編譯出錯,error C2065: 'PCAP_SRC_IF_STRING' : undeclared identifier,解決方法如下:
pcap.h中沒有此函數,是在#include <remote-ext.h> 這個里,但是加上了出錯,
remote-ext.h(39) : fatal error C1189: #error : Please do not include this file directly. Just define HAVE_REMOTE and then include pcap.h
Error executing cl.exe. 解決方法就是:
#define HAVE_REMOTE
#include "pcap.h"
一定要先define HAVA_REMOTE 再include "wpcap.h" 否則還是報錯
對了,應該在pcap-stdinc.h中把_w64去掉,這個忘了在哪提示錯誤了,
至此,編譯應該就成功了。