使用libdnet.lib开发编译问题!!!

liangjianyong 2009-03-04 12:55:03
--------------------Configuration: arpop - Win32 Debug--------------------
Compiling...
arpop.c
Linking...
LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library
dnet.lib(arp-win32.obj) : error LNK2001: unresolved external symbol _CreateIpNetEntry@4
dnet.lib(arp-win32.obj) : error LNK2001: unresolved external symbol _GetBestRoute@12
dnet.lib(arp-win32.obj) : error LNK2001: unresolved external symbol _DeleteIpNetEntry@4
dnet.lib(arp-win32.obj) : error LNK2001: unresolved external symbol _GetIpNetTable@12
Debug/arpop.exe : fatal error LNK1120: 4 unresolved externals
执行 link.exe 时出错.

下面是源代码:
#include "dnet.h"
#include "stdio.h"
#pragma comment(lib,"dnet.lib")
//#pragma comment(lib,"packet.lib")
//#pragma comment(lib,"wpcap.lib")
//#pragma comment(lib,"ws2_32.lib")
#pragma comment(lib,"wsock32.lib")
/*
=======================================================================================================================
Libdnet头文件 ;
下面定义的函数是一个回调函数,它在函数arp_loop()函数中被调用,它的功能就是对ARP记录进行操作,在这里是显示ARP记录
=======================================================================================================================
*/
int show_arp_cache(const struct arp_entry *object, void *p)
{
printf("IP %s at MAC %s\n ", addr_ntoa(&object->arp_pa), addr_ntoa(&object->arp_ha));
/* 显示IP地址和以太网地址对 */
return (0);
}
int main()
{
struct arp_entry arp_object;
/* ARP缓存的数据结构的变量 */
arp_t *arp_handle;
/* ARP缓存操作句柄 */
arp_handle = arp_open();
/* 打开ARP缓存操作 */
printf("show the arp cache\n");
arp_loop(arp_handle, show_arp_cache, NULL);
/*
* 注册回调函数show_arp_cache,作用是循环调用回调函数对每个ARP缓存记录进行操作。此处是显示每个ARP缓存记录。
*/
printf("Add a arp \n");
addr_pton("192.168.0.4", &arp_object.arp_pa);
/* 把一个IP地址的字符串形式转化为二进制形式 */
addr_pton("11:11:11:11:11:11", &arp_object.arp_ha);
/* 把一个以太网地址的字符串形式转换为二进制形式 */
arp_add(arp_handle, &arp_object);
/* 增加一个ARP缓存记录 */
printf("a arp added\n");
addr_pton("192.168.0.5", &arp_object.arp_pa);
/* 把一个IP地址的字符串形式转化为二进制形式 */
addr_pton("22:22:22:22:22:22", &arp_object.arp_ha);
/* 把一个以太网地址的字符串形式转换为二进制形式 */
arp_add(arp_handle, &arp_object);
/* 增加一个ARP缓存记录 */
printf("a arp added\n");
printf("show the arp cache again\n");
arp_loop(arp_handle, show_arp_cache, NULL);
/* 显示每个ARP缓存记录 */
printf("Delete a arp \n");
addr_pton("192.168.0.4", &arp_object.arp_pa);
/* 把一个IP地址的字符串形式转化为二进制形式 */
arp_delete(arp_handle, &arp_object);
/* 删除一个ARP缓存记录 */
printf("a arp deleted\n");
printf("show the arp cache again\n");
arp_loop(arp_handle, show_arp_cache, NULL);
/* 显示每个ARP缓存记录 */
arp_close(arp_handle);
/* 关闭ARP缓存操作 */
}
...全文
191 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
louxy2010 2010-12-08
  • 打赏
  • 举报
回复
大哥,怎么解决的。
小弟的也有问题,能不能说一下。
我的邮箱252462425@163.com 谢谢
liangjianyong 2009-07-15
  • 打赏
  • 举报
回复
虽然没有解决我的问题,后来我自己解决了,还是很感谢你的回答,所以分数也就给你了。
zzz822163 2009-03-07
  • 打赏
  • 举报
回复
#pragma comment(lib,"libdnet.lib")
程序里加上

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧