我正在尝试用 c++ 读取 pcap 文件(我使用的是 VS 2008),但出现以下错误:
1) 错误 C2011: 'bpf_program' : 'struct' 类型重新定义。
2) 错误 C2011: 'bpf_insn' : 'struct' 类型重新定义
我想问题是我在一个文件中包含了 Packet32.h,在另一个文件中包含了 pcap.h(我需要某个类中的 Packet32.h 函数,我需要 pcap.h 来读取另一个类中的 pcap 文件) . 我在每个文件中都有标头保护。
在主要课程中,我包括了前面提到的两个课程。如果我切换包含顺序,我会收到另一个错误。这是一个看起来像我的简单代码:
在 class1.h 中:
.
.
.
#include <Packet32.h>
#include <windows.h>
#include <process.h>
.
.
.
在 class2.h 中:
.
.
.
#include <pcap.h>
.
.
.
在 main.cpp 中:
#include "stdafx.h"
#include "class1.h"
#include "class2.h"
.
.
.
我想知道是否有人可以帮助我解决这个问题。将不胜感激。