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.hip.hudp.htcp.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;
};