当前位置: 首页 > 编程技术 > 正文

解决’PMIB_ICMP_EX’ : undeclared identifier错误

用SDK编写网络程序的时候,需要获得适配器的信息,使用GetAdaptersInfo可以获得网卡很多的信息,MSDN中的定义如下:

DWORD GetAdaptersInfo(
  __out    PIP_ADAPTER_INFO pAdapterInfo,
  __inout  PULONG pOutBufLen
);

从MSDN中获知使用这个函数需要包含头文件和LIB文件:

Client Requires Windows Vista, Windows XP, Windows 2000 Professional, Windows Me, or Windows 98. 
Server Requires Windows Server 2008, Windows Server 2003, or Windows 2000 Server. 
Header Declared in Iphlpapi.h.

Library Use Iphlpapi.lib.

DLL Requires Iphlpapi.dll.

可以知道需要Iphlpapi.dll和Iphlpapi.h头文件,由于使用习惯了VC++6.0,于是,在VC++6.0中写了一个简单的main函数,在main函数中调用

GetAdaptersInfo这个函数,但是编译的时候出现了下面的错误:

error C2065: 'GetAdaptersInfo' : undeclared identifier

从错误的中可以看出是没有包含头文件的错误.包含头文件后,出现了下面的错误:

Cannot open include file: 'ipexport.h': No such file or directory

然后又全盘搜索文件,把对应的头文件拷贝到工程目录下:
就在满心以为可以编译通过了后,编译器提示:

'PMIB_ICMP_EX' : undeclared identifier

定位到错误所在的文件时,发现是系统的文件,一般对于系统的错误。我都无能为力,因为我相信系统的文件应该是没有什么低级错误的,所以无奈之下,使用MSDN搜索PMIB_ICMP_EX,在在线支持论坛中发现了原因,原来是需要安装模块的,或者就是编译器的版本太低了,

将程序用VS编译后,发现可以成功编译,那么可以肯定的是,应该是编译器版本的问题了

总结下,
原因:编译器版本太低,导致没有安装一些必须的模块
解决方案:直接用VS 2005 或者是VS2008.这样的话,连包含头文件和链接lib库文件的方法都省了



本文固定链接: http://kuaile.in/archives/627 | 蒲公英的博客

该日志由 蒲公英 于2012年03月15日发表在 编程技术 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 解决’PMIB_ICMP_EX’ : undeclared identifier错误 | 蒲公英的博客
关键字:

解决’PMIB_ICMP_EX’ : undeclared identifier错误:等您坐沙发呢!

发表评论


You must enable javascript to see captcha here!

快捷键:Ctrl+Enter