wincap4.11在vc6下编译出现_W64错误【解决方法】

时间:2022-12-22 14:50:32

别人问题以及解答:

 

winpcap 4.1.1在vc6下编译会出现以下错误,原因是vc6.0并不完美支持c++99标准,在64位cpu中编译会有问题,将winpcap开发包换到4.0.1版本及以下错误消失

c:/wpdpack/include/pcap-stdinc.h(79) : error C2144: syntax error : missing ';' before type 'unsigned int'
c:/wpdpack/include/pcap-stdinc.h(79) : fatal error C1004: unexpected end of file found

 

在一个就是用升级VC6.0 PSDK的方法估计也可以解决。

 

自己解决方法:

leo解决方法:

但是两种方法我都嫌麻烦(这是VS等软件各种版本引起的各种错误,烦死....)

 

既然是VC6的PSDK版本低,不支持W64,那好!我用VS2008,这样总可以了吧,可以跟进高版本的WinCap了吧。结果我是对的。

 

还是按原来http://hi.baidu.com/benboy2/blog/item/193085fa441cc69d58ee906d.html说讲的的配置好了-->把文件夹WpdPack放到工程目录,什么option中的setting(include和lib)搞好,工程右击->属性->预处理器加上WPCAP;HAVE_REMOTE,又->linker->Input加上wpcap.lib就Ok 配置好了。

如下一简单例子leo编译通过,大家可以试试:

// WinCapTest2008.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "pcap.h"//leo开始把这句定义在#include"sdafx.h"之前,结果引起22个错误,换过就编译通过了

int _tmain(int argc, _TCHAR* argv[])
{
    pcap_if_t *alldevs;
   
    pcap_if_t *d;
   
    int i=0;
   
    char errbuf[PCAP_ERRBUF_SIZE];

    if (pcap_findalldevs(&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 -1;
       
    }
            
    pcap_freealldevs(alldevs);
   
    return 0;
}