C++ 缺少winpcap头文件 pcap.h 解决方案

最近在做课设的时候看到一个代码用到了winpcap的一个头文件 pcap.h ,为了能让代码跑起来也是找了很多资料,因此在这里汇总一下。

  1. 在官网下载开发包,我下载的是 WinPcap 4.1.2 Developer’s Pack 的版本,下载后解压缩,并且记住这个路径。

  2. 为了能顺利运行代码还要进行一些配置,以VS2019版本为例,点击 项目->配置属性-> C/C++ -> 常规,将刚才解压的sdk文件中的 include 文件夹路径加到附加包含目录里。(注意:这个 WinPcapDeveloperPack 文件夹是我自己为了区分把解压后的文件夹改了名字,原来的名字应该是 WpdPack

    C++ 缺少winpcap头文件 pcap.h 解决方案_第1张图片

  3. 点击 项目-> 项目属性->链接器->常规->附加库目录 将刚才解压的sdk文件中的 lib文件夹 路径加进去。

    C++ 缺少winpcap头文件 pcap.h 解决方案_第2张图片

  4. 在原来的代码里面加上这两行

    #pragma comment(lib, "wpcap.lib")
    #pragma comment(lib, "ws2_32.lib")
    
  5. 另外,由于原来的代码

    struct tm* ltime;
    char timestr[16];
    ltime = localtime((const time_t *)& header->ts.tv_sec); //将时间戳转换为可读字符
    strftime(timestr, sizeof(timestr), "%H:%M:%S", ltime);
    printf("时间:%s\n", timestr);
    
    #include "winsock.h"
    

    报错给注释掉了,改成了

    char formatTime[64] = { 0 };
    snprintf(formatTime, 64, "%04d-%02d-%02d %02d:%02d:%02d",
             t_tm->tm_year + 1900,
             t_tm->tm_mon + 1,
             t_tm->tm_mday,
             t_tm->tm_hour,
             t_tm->tm_min,
             t_tm->tm_sec);
    printf("时间:%s\n", formatTime);
    
    #include 
    
  6. 现在就可以运行了。

代码来源:网络嗅探器设计实验
参考链接:使用Winpcap示例程序的时候,会出现很多错误(转)、VS2012 无法加载“pcap.h”、winpcap环境部署(VC6.0出现找不到“pcap.h_'”文件解决方法)

你可能感兴趣的:(c++,开发语言)