Qt указатель на структуру - PullRequest
1 голос
/ 27 марта 2020

Я использую Qt Creator (5.13), я пытаюсь создать приложение с libpcap. Когда я создаю некоторый метод с (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

1 Ответ

1 голос
/ 27 марта 2020

Если вы используете Windows, вам следует использовать tcpdump , для этого есть несколько заголовков.

ether.h, ip.h, udp.h и tcp.h

И еще, я пытался использовать ethhdr, но это неправильно, очевидно, эта структура для 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;
};
...