如何解决winpcap与...之间的冲突窗户套件? [英] How to resolve the conflict between winpcap & windows kits?

查看:334
本文介绍了如何解决winpcap与...之间的冲突窗户套件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开始我的计划包括:

 #define TARGET_SIMU 
#include< iostream>
#define INT32_ALREADY_DEFINED

#define _CRT_RAND_S
#include< process.h>
#include< search.h>

#includeiptcom.h/ * IPT的公共类型定义* /
#includeiptcom_priv.h

#includeiphlpapi.h
#define DATASZ 1000

#includepcap.h





我有以下错误消息。很明显WinPCap(

 C:\Program Files(x86)\ WpdPack_4_1_2 

)& Windows工具包(

 c:\program files(x86)\windows kits\8.1 

)。 WinPCap是从 WinPcap·开发人员资源 [ ^ ]

我能做些什么来解决这种冲突?



.............................

 1>注意:包括文件:C:\Program Files(x86)\ Windows Kits \8.1\Include\shared\ws2def.h 
1> c:\program files(x86)\windows kits \8.1\include\shared\ws2def.h(100):警告C4005:'AF_IPX':宏重新定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(452):注意:请参阅先前的'AF_IPX'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \shared \ws2def.h(140):警告C4005:'AF_MAX':宏重新定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(471):注意:请参阅先前的'AF_MAX'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \shared \ws2def.h(177):警告C4005:'SO_DONTLINGER':宏重新定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(394):注意:请参阅先前的'SO_DONTLINGER'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \shared \ws2def.h(221):错误C2011:'sockaddr':'struct'类型重新定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(1002):注意:请参阅'sockaddr'的声明
1> c:\ program files(x86)\windows kits\8.1\include\shared\ws2def.h(421):错误C2059:语法错误:'常量'
1> c:\program files(x86) \单位套件\8.1 \include \shared \ws2def.h(421):错误C3805:'常数':意外令牌,预期'}'或'','
1> c: \program files(x86)\windows kits\8.1\include \shared \ws2def.h(556):警告C4005:'IN_CLASSA':宏重新定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(279):注意:请参阅先前的'IN_CLASSA'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \shared \ws2def.h(562):警告C4005:'IN_CLASSB':宏重新定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(285):注意:请参阅先前的'IN_CLASSB'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \shared \ws2def.h(568):警告C4005:'IN_CLASSC':宏重新定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(291):注意:请参阅先前的'IN_CLASSC'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \shared \ws2def.h(579):警告C4005:'INADDR_ANY':宏重新定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(296):注意:请参阅先前的'INADDR_ANY'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \shared \ws2def.h(581):警告C4005:'INADDR_BROADCAST':宏重新定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(298):注意:请参阅先前的'INADDR_BROADCAST'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \shared \ws2def.h(615):错误C2011:'sockaddr_in':'struct'类型重新定义
1> c:\program files(x86)\ windows kits \8.1 \ include \\\\winsock.h(1006):注意:请参阅'sockaddr_in'的声明'
1> c:\ program files(x86)\ windows kits \8.1 \ include.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(1014):注意:请参阅'fd_set'的声明
1> c:\ program files(x86)\windows kits\8.1\include\\\\winsock2.h(156):warning C4005:'FD_CLR':宏重定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(89):注意:请参阅先前的'FD_CLR'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \\\\winsock2.h(171):警告C4005:'FD_SET':宏重定义
1> c:\program files(x86)\windows kits \8.1\include\\\\winsock.h(94):注意:请参阅先前的'FD_SET'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \\\\winsock2.h(180):错误C2011:'timeval':'struct'类型重定义
1> c:\program files(x86)\windows kits \8.1 \ include.hum \ winsock.h(1030):注意:请参阅'timeval'的声明
1> c:\ program files(x86)\ windows kits\8.1\include\\\\winsock2.h(236):错误C2011:'hostent':'struct'类型重定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(1018):注意:请参阅'hostent'声明
1> c:\ program files(x86)\windows kits\8.1\include\\\\winsock2.h(249):错误C2011:'netent':'struct'类型重定义
1> c:\program files(x86)\ windows kits\8.1\include\\\\winsock.h(172):注意:请参阅'netent'的声明
1> c:\ program files(x86)\windows kits\8.1\include\\\\winsock2.h(256):错误C2011:'servent':'struct'类型重定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(1022):注意:请参阅'servent'的声明
1> c:\ program files(x86)\windows kits\8.1\include\\\\winsock2.h(268):错误C2011:'protoent':'struct'类型重定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(1026):注意:请参阅'protoent'的声明
1> c:\ program files(x86)\ windows kits\8.1\include\\\\winsock2.h(364):错误C2011:'WSAData':'struct'类型重定义
1> c:\program files(x86)\ windows kits \8.1\include\\\\winsock.h(314):注意:请参阅'WSAData'声明
1> c:\ program files(x86)\windows kits\8.1\include\\\\winsock2.h(462):错误C2011:'sockproto':'struct'类型重定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(486):注意:请参阅'sockproto'的声明
1> c:\ program files(x86)\windows kits\8.1\include\\\\winsock2.h(504):错误C2011:'linger':'struct'类型重定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(1010):注意:请参阅'linger'声明
1> c:\ program files(x86)\ windows kits \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(536):注意:请参阅先前的'SOMAXCONN'定义
1> c:\程序文件(x86)\窗口套件\8.1 \ include \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(554):注意:请参阅先前的'FD_READ'定义
1> c:\程序文件(x86)\窗口套件\8.1\include \\\\winsock2.h(554):警告C4005:'FD_WRITE':宏重定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(555):注意:请参阅先前的'FD_WRITE'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \\\\winsock2.h(557):警告C4005:'FD_OOB':宏重新定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(556):注意:请参阅先前的'FD_OOB'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \\\\winsock2.h(560):警告C4005:'FD_ACCEPT':宏重定义
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(557):注意:请参阅先前的'FD_ACCEPT'定义
1> c:\程序文件(x86)\窗口套件\8.1 \include \\\\winsock2.h(563):警告C4005:'FD_CONNECT':宏重新定义
1> c:\program files(x86)\windows kits \8.1 \ include.hum \ winsock.h(558):注意:参见先前的'FD_CONNECT'定义
1> c:\程序文件(x86)\窗口套件\8.1 \ include \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(559):注意:参见先前的'FD_CLOSE'定义
1>注意:包括文件:C:\Program Files(x86)\ Windows Kits \8.1 \Include\shared\qos.h
1> c:\program files(x86)\windows kits \8.1\include\\\\winsock2.h(1646):错误C2375:'accept':重新定义;不同的联系
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(734):注意:请参阅'accept'声明
1> c:\ program files(x86)\ windows kits\8.1\include\\\\winsock2.h(1668):错误C2375:'bind':redefinition;不同的联系
1> c:\program files(x86)\windows kits \8.1 \ include \\\\winsock.h(739):注意:请参阅'bind'声明
1> c:\ program files(x86)\ windows kits \8.1\include\\\\winsock2.h(1689):错误C2375:'closesocket':重新定义;不同的联系
1> c:\program files(x86)\windows kits\8.1\include\\\\winsock.h(744):注意:请参阅'closesocket'的声明



..........................



什么我试过了:



我在一些论坛上讨论过它并没有得到适当的回应。

解决方案

这不是WinPcap的问题,而是Windows头文件的包含顺序。



您尚未包含 windows.h winsock.h 。因此,当其他头文件需要时,它们会被包含在内。但是之前提到的头文件必须包含在特定的顺序中。



我没有在这里进行测试,但包括这些应该解决问题:

  //  在windows.h之前包含winsock2.h  
#include < < span class =code-leadattribute> winsock2.h >
#include < windows.h < span class =code-keyword>>
// 包括这里的其他头文件



或者首先定义 WIN32_LEAN_AND_MEAN 首先:

< pre lang =c ++> // 不要在windows.h中包含其他头文件
// 必须明确包含这些内容
#define WIN32_LEAN_AND_MEAN
#include < windows.h >
#include < winsock2.h >
// 此处包含其他标题文件


I started my program with including of:

#define TARGET_SIMU
#include <iostream>
#define INT32_ALREADY_DEFINED

#define _CRT_RAND_S
#include <process.h>
#include <search.h>

#include "iptcom.h"        /* Common type definitions for IPT */
#include "iptcom_priv.h" 

#include "iphlpapi.h"
#define	DATASZ 1000

#include "pcap.h"



I've got the following error message. It's obvious that there is conflict between WinPCap (

C:\Program Files (x86)\WpdPack_4_1_2

) & Windows Kits (

c:\program files (x86)\windows kits\8.1

). WinPCap was downloaded from WinPcap · Developer Resources[^]
Anything I can do to resolve such conflict?

.............................

1>  Note: including file:     C:\Program Files (x86)\Windows Kits\8.1\Include\shared\ws2def.h
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(100): warning C4005: 'AF_IPX': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(452): note: see previous definition of 'AF_IPX'
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(140): warning C4005: 'AF_MAX': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(471): note: see previous definition of 'AF_MAX'
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(177): warning C4005: 'SO_DONTLINGER': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(394): note: see previous definition of 'SO_DONTLINGER'
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(221): error C2011: 'sockaddr': 'struct' type redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(1002): note: see declaration of 'sockaddr'
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(421): error C2059: syntax error: 'constant'
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(421): error C3805: 'constant': unexpected token, expected either '}' or a ','
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(556): warning C4005: 'IN_CLASSA': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(279): note: see previous definition of 'IN_CLASSA'
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(562): warning C4005: 'IN_CLASSB': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(285): note: see previous definition of 'IN_CLASSB'
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(568): warning C4005: 'IN_CLASSC': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(291): note: see previous definition of 'IN_CLASSC'
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(579): warning C4005: 'INADDR_ANY': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(296): note: see previous definition of 'INADDR_ANY'
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(581): warning C4005: 'INADDR_BROADCAST': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(298): note: see previous definition of 'INADDR_BROADCAST'
1>c:\program files (x86)\windows kits\8.1\include\shared\ws2def.h(615): error C2011: 'sockaddr_in': 'struct' type redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(1006): note: see declaration of 'sockaddr_in'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(136): error C2011: 'fd_set': 'struct' type redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(1014): note: see declaration of 'fd_set'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(156): warning C4005: 'FD_CLR': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(89): note: see previous definition of 'FD_CLR'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(171): warning C4005: 'FD_SET': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(94): note: see previous definition of 'FD_SET'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(180): error C2011: 'timeval': 'struct' type redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(1030): note: see declaration of 'timeval'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(236): error C2011: 'hostent': 'struct' type redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(1018): note: see declaration of 'hostent'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(249): error C2011: 'netent': 'struct' type redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(172): note: see declaration of 'netent'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(256): error C2011: 'servent': 'struct' type redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(1022): note: see declaration of 'servent'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(268): error C2011: 'protoent': 'struct' type redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(1026): note: see declaration of 'protoent'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(364): error C2011: 'WSAData': 'struct' type redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(314): note: see declaration of 'WSAData'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(462): error C2011: 'sockproto': 'struct' type redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(486): note: see declaration of 'sockproto'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(504): error C2011: 'linger': 'struct' type redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(1010): note: see declaration of 'linger'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(517): warning C4005: 'SOMAXCONN': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(536): note: see previous definition of 'SOMAXCONN'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(551): warning C4005: 'FD_READ': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(554): note: see previous definition of 'FD_READ'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(554): warning C4005: 'FD_WRITE': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(555): note: see previous definition of 'FD_WRITE'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(557): warning C4005: 'FD_OOB': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(556): note: see previous definition of 'FD_OOB'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(560): warning C4005: 'FD_ACCEPT': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(557): note: see previous definition of 'FD_ACCEPT'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(563): warning C4005: 'FD_CONNECT': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(558): note: see previous definition of 'FD_CONNECT'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(566): warning C4005: 'FD_CLOSE': macro redefinition
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(559): note: see previous definition of 'FD_CLOSE'
1>  Note: including file:     C:\Program Files (x86)\Windows Kits\8.1\Include\shared\qos.h
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(1646): error C2375: 'accept': redefinition; different linkage
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(734): note: see declaration of 'accept'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(1668): error C2375: 'bind': redefinition; different linkage
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(739): note: see declaration of 'bind'
1>c:\program files (x86)\windows kits\8.1\include\um\winsock2.h(1689): error C2375: 'closesocket': redefinition; different linkage
1>  c:\program files (x86)\windows kits\8.1\include\um\winsock.h(744): note: see declaration of 'closesocket'


..........................

What I have tried:

I've discussed it at some forums and got no appropriate response.

解决方案

It is not a problem with WinPcap but with the inclusion order of the Windows header files.

You have not included windows.h and winsock.h. So they are included when needed by other header files. But the before mentioned header files must be included in a specific order.

I did not have your setup here for testing but including these on top should solve the problem:

// Include winsock2.h before windows.h
#include <winsock2.h>
#include <windows.h>
// Include other header files here


Alternatively define WIN32_LEAN_AND_MEAN first:

// Don't include additional header files from windows.h
// These must be then included explicitly
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
// Include other header files here


这篇关于如何解决winpcap与...之间的冲突窗户套件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆