Qt 指向结构的指针
Qt pointer to a structure
我使用 Qt Creator (5.13),我尝试用 libpcap
创建一些应用程序。当我在 class 中使用 (struct ethhdr *eth) 创建一些方法时,我会得到一个错误:
代码:
void SniffPackets::foo(struct ethhdr *eth){
sprintf(temp_buf, "%3d.%3d.%3d.%3d",
(int)eth->h_dest[0],
(int)eth->h_dest[1],
(int)eth->h_dest[2],
(int)eth->h_dest[3]);
}
错误:
成员访问不完整类型 'struct ethhdr *eth'.
顺便说一句,我用的是c++99
如果你使用Windows,你应该使用tcpdump,有几个headers。
ether.h
、ip.h
、udp.h
和 tcp.h
还有,我试过用ethhdr
,但是错了,明明是这个struct for Linux.
将其用于 Windows:
/*
* Structure of an Ethernet header.
*/
struct ether_header {
uint8_t ether_dhost[ETHER_ADDR_LEN];
uint8_t ether_shost[ETHER_ADDR_LEN];
uint16_t ether_length_type;
};
我使用 Qt Creator (5.13),我尝试用 libpcap
创建一些应用程序。当我在 class 中使用 (struct ethhdr *eth) 创建一些方法时,我会得到一个错误:
代码:
void SniffPackets::foo(struct ethhdr *eth){
sprintf(temp_buf, "%3d.%3d.%3d.%3d",
(int)eth->h_dest[0],
(int)eth->h_dest[1],
(int)eth->h_dest[2],
(int)eth->h_dest[3]);
}
错误: 成员访问不完整类型 'struct ethhdr *eth'.
顺便说一句,我用的是c++99
如果你使用Windows,你应该使用tcpdump,有几个headers。
ether.h
、ip.h
、udp.h
和 tcp.h
还有,我试过用ethhdr
,但是错了,明明是这个struct for Linux.
将其用于 Windows:
/*
* Structure of an Ethernet header.
*/
struct ether_header {
uint8_t ether_dhost[ETHER_ADDR_LEN];
uint8_t ether_shost[ETHER_ADDR_LEN];
uint16_t ether_length_type;
};