pcap调用记录

来源:互联网 发布:如何检查网络是否稳定 编辑:程序博客网 时间:2024/06/12 01:47

1、无法打开pcap/pcap.h文件

问题产生原因,软件移动了位置,路径配置又没有采用相对路径,

因此需要针对每一个项目做项目属性配置。

注意:路径表示,"/"和"\"windows都能识别,但是在某些情况向用"\"会报错

比如,#pragma comment(lib,"../WpdPack/Lib/Packet.lib"),如果用"\"编译

器会认为是专业字符。

在属性管理器中做全局添加,VC++目录->包含目录->添加c:\WpdPack\Include

VC++目录->包含目录->添加c:\WpdPack\Lib

如果全局做了以上配置还报错,那么就需要为每个工程做单独配置。


2、调用dll库函数出错

错误提示:读取位置0xcdcdcdd9时发生访问冲突

解决方法:将dll库函数直接移植到当前调试函数中,

定位发现错误产生于

if(allAdapters != NULL)

pcap_freealldevs(allAdapters );

pcap在查询网络适配器时会,会检查当前适配器存储记录,

如何有就先全部释放掉。调试发现allAdapters初始值并不一

定为空。因此,调用的时候需要对其进行初始化

allAdapters = NULL;


3、将查询到的网卡信息显示出来

Cstring InfoBuffer.Format(_T("%d.%s", ++AdapterID, pCamera->Adapter->description));

第一个参数需要加上_T( ),否则编译出错;

字符串显示出来是乱码,debug跟踪字符串参数正常。

乱码产生原因是由于字符在unicode与ASCII字符之间转换出了问题。
由于工程中采用编码差异,所以可能会导致转码错误。
如果出现乱码,那是因为工程中使用了Unicode编码。
可以尝试这样写
char *ch="hello";
CString msg;
msg.format(L"%s", LPCTSTR(ch));
也可以这样
char *ch="hello";
CString msg;
msg.format(_T("%s", CStringW(ch));


4、下拉框控件CComboBox

CComboBox m_ComboNICList;

数据关联DDX_Control(pDX, IDC_COMBO_NICLIST,m_ComboNICList);

列表信息添加m_ComboNICList.AddString(InfoBuffer);

选择项数值获取m_ComboNICList.GetCurSel();




0 0
原创粉丝点击