一个专门获取网卡信息的 没有Iphlpapi.h与Iphlpapi.lib,怎么处理?

一般程序员用2种编译器,一种是经典的VC++6.0,一种是VS2003/2005/2008/2010高一版本的.

---------为什么没有Iphlpapi.h与Iphlpapi.lib的根本原因,是没有安装平台SDK(Platform SDK ),XP用XP,2000就用2000的,最好不要用混.下了一个版本安装过,不知为何原因安装不上,这个网站上有下载http://www.x86pro.com/articleViewer.php?pid=71另外注意,在2003年的时候,微软就停止了对VC++6.0的平台SDK的支持,所以只能下载之前的

---------解决办法:VC++6.0是肯定没有,必须要下载安装,而VS2003以上版本,则不需要安装了,直接就能用,我用的VS2008立马编译成功.在文章最后,我会把代码贴出来-------详见代码(有说明)

VC++6.0呢?只能安装平台SDK了,但是在网上搜索到的机会很少,在微软官方网站,我也没有搜索到,这个文件一般是200多M,怎么安装,上面那个提供了安装方法.,可能我是XP版本,所以没安装成功,不过你们可以多尝试一下.

-------------------总结:

最后,我不得不放弃用VC++6,0了,因为同一段代码,放在VS2008上能正常运行,而放在VC++6.0上却不能,最终原因是VC++版本太老,不支持一些平台SDK.

下面就以实例来介绍.是一个专门获取网卡信息的,如你用的是什么网卡,子网掩码是多少,MAC地址是多少,这些仅仅是最基本的,最基本的都不支持了,我不知道深入开发下去,会出现什么莫名其妙的Debug

-------------代码如下:

#include <windows.h>
#include <Iphlpapi.h>
#include <stdio.h>
#pragma comment(lib,"Iphlpapi.lib")

int main()
{ PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD    dlRetVal = 0;

pAdapterInfo = ( IP_ADAPTER_INFO *)malloc( sizeof(IP_ADAPTER_INFO) );
ULONG ulOutbufLen = sizeof(IP_ADAPTER_INFO);

if ( ERROR_BUFFER_OVERFLOW == GetAdaptersInfo( pAdapterInfo, &ulOutbufLen) )
{
free(pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutbufLen);
}

dlRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutbufLen );
if ( NO_ERROR == dlRetVal )
{
pAdapter = pAdapterInfo;

while ( pAdapter )
{
   printf("/tAdapter Name: /t%s/n", pAdapter->AdapterName);
   printf("/tAdapter Desc: /t%s/n", pAdapter->Description);
   printf("/tIP Address: /t%s/n", pAdapter->IpAddressList.IpAddress.String);
   printf("/tIP Mask: /t%s/n", pAdapter->IpAddressList.IpMask.String);

   pAdapter = pAdapter->Next;
}

}

getchar();

return 0;
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值