gpt4 book ai didi

c++ - 使用 libpcap 和 c++ 构建错误 pcap_loop

转载 作者:搜寻专家 更新时间:2023-10-31 01:54:15 25 4
gpt4 key购买 nike

您好,我正在使用 C++ 和 libpcap。当我尝试调用函数“mycallback”时,出现构建错误。这些是函数:

void Capture::mycallback (unsigned char * useless, const struct pcap_pkthdr *pkthdr, const unsigned char * packet){
[...]
}

以及对函数的调用:

void Capture::capturar(){
[...]
pcap_loop (descr, -1, mycallback, NULL); //entramos en el bucle (infinito)
}

这是错误:

error: argument of type 'void (Capture ::) (unsigned char *, const pcap_pkthdr *, const unsigned char *)' does not match '{aka pcap_handler void (*) (unsigned char *, const pcap_pkthdr *, const unsigned char *)} '

我不明白错误,因为声明是一样的,谁能帮我?

谢谢。

最佳答案

你的回调是一个类成员函数。在大多数平台上,您可以使用 static 类成员函数,但理想情况下您应该只使用常规函数。如果它需要对类的特殊访问权限,您可以使该函数成为该类的友元

错误确实说明了这一点:

... 'void (Capture::) (unsigned char *, const pcap_pkthdr ... 不匹配 '{aka pcap_handler void (*) (unsigned ...

请注意 Capture:: 出现在“不匹配”的左侧而不是右侧?每当您遇到这样的错误时,请比较两侧,看看有什么不同。

关于c++ - 使用 libpcap 和 c++ 构建错误 pcap_loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9969280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com