winpcap获取设备列表
项目需要学习了一下winpcap,第一步就遇到了很多问题,解决办法记录在下面了。我的电脑是win10系统,安装win10pcap(winpcap不支持win10系统),安装完后如果使用winpcap的接口需要下载WpdPack,下载链接:https://www.winpcap.org/devel.html 。
下载好后解压,将winpack下面的include和lib目录包含进工程。就可使用winpcap接口了。
问题1:pcap_findalldevs_ex()函数未定义
pcap_findalldevs_ex()用于查找所有网络设备,代码已经包含头文件<pcap.h>,但是这个头文件中并没有这个函数的定义,我比较懒首先想到的解决办法肯定是上网搜,这个功能函数在winpcap中肯定是有定义的,不过不在pcap.h中。我比较幸运,片刻功夫就找到了,不然我的下一个解决办法将是包含所有winpcap的头文件。这篇博文:使用pcap_findalldevs_ex获取设备列表遇到的问题 有提到这个函数在<remote-ext.h>头文件中被定义。万分感谢博主。博主辛苦了。
问题2:E0167 PCAP_SRC_IF_STRING “const char *” 类型的实参与 “char *” 类型的形参不兼容
这个问题让我很难受,虽然加个强制类型转换就可以解决,但是我一直觉得强制类型转换很暴力并不是很喜欢用,希望有更好的解决办法。PCAP_SRC_IF_STRING是(const char *)类型,而pcap_findalldevs_ex()函数的第一个形参类型为(char *),我用的编译器为VS2017,这里不加强制类型转换编译不通过。希望我在学习winpcap的过程中可以找到让自己舒服的解决办法,当然这个错误可能换个编译器会是一个警告。
问题3:E0035 #error 指令: Please do not include this file directly. Just define HAVE_REMOTE and then include pcap.h wifiProbeProject d:\Source\WpdPack\Include\remote-ext.h 39
解决办法提示已经给出来了,即在包含pcap.h之前定义HAVE_REMOTE
暂时总结到这咯
在Win10系统中使用Winpcap库获取设备列表时,遇到pcap_findalldevs_ex()函数未定义、类型兼容性错误以及#include <remote-ext.h>时的编译错误。解决方法包括引入<remote-ext.h>头文件、进行类型转换以及在包含pcap.h前定义HAVE_REMOTE。
606

被折叠的 条评论
为什么被折叠?



