zoukankan      html  css  js  c++  java
  • Winpcap安装,Cannot open include file 'pcap.h'

    VC报错 fatal error C1083: Cannot open include file: 'pcap.h': No such file or directory

    Winpcap是windows平台下的一个专业Winpcap是一个强大的网络开发库,可以实现许多功能:获取可用的网络适配器;获取指定适配器信息(比如名称和描述信息);捕获指定网卡的数据封包;发送数据封包;过滤捕获的包以获取特定包等。

    WinPcap由两部分组成:
    1. 驱动程序: 扩展操作系统功能提供低层次的网络访问
    2. 动态链接库:运行在Win32平台上的应用程序可以非常方便地访问网络低层次的数据。

    Winpcap的安装使用方法


    1.下载安装包,开发包

      http://www.winpcap.org/install/default.htm下载winpcap的安装包,
      http://www.winpcap.org/devel.htm下载winpcap的开发包(WinPcap SDK)。

    2.执行安装包,这样你的机子就能运行winpcap程序了。

    3.解压开发包,解压后除了一些文档、example和demo,要用到的就是include和Lib文件夹;
    在VC6.0的Tools-->Option-->Directories的Include fils 和library files加入winpcap的include和lib目录。

    4.在Link选项卡加入wpcap.lib ws2_32.lib Packet.lib

    5.在预定义宏添加WPCAP,HAVE_REMOTE或直接在pcap.h文件中加入

           #define WPCAP

           #define HAVE_REMOTE

    6.开始编写wpcap程序。

    ————————————————————————————————————————————

    ReBuild All:

    报错如下:

    error C2144: syntax error : missing ';' before type 'unsigned int'

    定位在_W64这一行

    #ifdef _WIN64
    typedef unsigned __int64 uintptr_t;
    #else
    typedef _W64 unsigned int uintptr_t;
    #endif
    #define _UINTPTR_T_DEFINED
    #endif
    
    #ifndef _INTPTR_T_DEFINED
    #ifdef _WIN64
    typedef __int64 intptr_t;
    #else
    typedef _W64  int intptr_t;
    #endif
    #define _INTPTR_T_DEFINED
    #endif 
    

    原因是vc6.0并不完美支持c++99标准(VC6的PSDK版本低,不支持W64),在64位cpu中编译会有问题,将winpcap开发包换到4.0.1版本或者其他早期版本及以下错误消失   

    当然你也可以使用VS2005、VS2008、VS2010等,可以跟进高版本的WinCap。

    之前尝试 “去掉_W64” 或者 “在 pcap.h中#define _W64” 没能解决问题。

     ------------------------------------------------------------------------------------------------------------------------------

     winpcap开发环境需要是windows操作系统,而且必须安装winpcap驱动才可以调试您的程序。

  • 相关阅读:
    视图容器组件使用
    组件的学习
    伸展树
    二叉搜索树
    二叉树
    笛卡尔树
    二叉堆
    vim配置
    使用vim-pathogen 进行插件管理
    C/C++中的变量和静态变量
  • 原文地址:https://www.cnblogs.com/gaoquanning/p/5485763.html
Copyright © 2011-2022 走看看