我试图将NULL传递给pcap_loop()函数,就像tcpdump man一样。
这是我想要触发的回调函数:
void Home::gotPacket(u_char *args, const struct pcap_pkthdr *header,
const u_char *packet){
}
首先我尝试了这个:
pcap_loop(handle, 0, gotPacket, NULL);
其次我尝试传递一个带NULL值的变量:
u_char *arg = NULL;
pcap_loop(handle, 0, gotPacket, arg);
第一种和第二种方法都返回了这个错误:
error: invalid use of non-static member function
pcap_loop(handle, 0, gotPacket, NULL);
^
error: invalid use of non-static member function
pcap_loop(handle, 0, gotPacket, arg);
^
如何解决该错误?在此先感谢您的帮助!
答案 0 :(得分:0)
我几乎可以肯定问题是Home::gotPacket
不是static
。请考虑将其更改为static
:
static void Home::gotPacket(u_char *args, const struct pcap_pkthdr *header,
const u_char *packet){
}
这应该可以解决您的问题