CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

GetAdaptersInfo函数连接错误

楼主d_selenite(计算机的奴隶)2003-08-01 19:34:20 在 VC/MFC / 基础类 提问

我用Visual   C++   6和Visual   C++   7   (.net)   编译都通不过,后安装了Microsoft   platform   sdk,并运行了注册程序,还是连接错误。后又安装了Visual   Studio   6   SP5,还是提示同样的连接错误,说是找不到外部符号_GetAdaptersInfo  
   
  困惑中 问题点数:100、回复次数:6Top

1 楼StdAfx(任杰)回复于 2003-08-01 20:09:09 得分 30

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

2 楼d_selenite(计算机的奴隶)回复于 2003-08-01 21:13:00 得分 0

我也试过了这个方法了,还是不行啊Top

3 楼StdAfx(任杰)回复于 2003-08-01 21:42:03 得分 40

如果实在不行的话,那你就采用下面的方法吧:  
   
  //   File:   GetMAC.cpp   -   Windows   console   application  
  //  
  //   This   program   demonstrates   how   to   find   the   hardware/MAC    
  //   address   of   all   adapters   on   the   computer.     Example   output:  
  //  
  //       3Com   EtherLink   PCI:   00-01-02-d4-de-79  
  //  
  //   This   only   works   with   Windows   98,   Windows   2000/XP   etc.     For    
  //   Windows   95,   CoCreateGuid   is   an   easy   way   to   get   the   MAC,   if  
  //   you're   not   concerned   about   multiple   adapters.  
  //  
  //   Gert   ->   codeblast.com  
   
  #include   <windows.h>  
  #include   <stdio.h>  
  #include   <time.h>  
  #include   <stdlib.h>  
   
  ///////////////////////////////////////////////////////////////////////////////  
  //   You   can   either   link   directly   to   Iphlpapi.lib:  
  //  
  //#include   <Iphlpapi.h>  
  //#pragma   comment(lib,   "Iphlpapi.lib")  
  //  
  //   but   instead   we   will   dynamically   load   GetAdaptersInfo   so  
  //   the   code   will   at   least   compile   and   load   on   Windows   95...  
  //   So   we   have   to   copy   some   stuff   declared   in   iptypes.h:  
   
  #define   MAX_ADAPTER_DESCRIPTION_LENGTH     128   //   arb.  
  #define   MAX_ADAPTER_NAME_LENGTH                   256   //   arb.  
  #define   MAX_ADAPTER_ADDRESS_LENGTH             8       //   arb.  
   
  //  
  //   IP_ADDRESS_STRING   -   store   an   IP   address   as   a   dotted   decimal   string  
  //  
   
  typedef   struct   {  
          char   String[4   *   4];  
  }   IP_ADDRESS_STRING,   *PIP_ADDRESS_STRING,   IP_MASK_STRING,   *PIP_MASK_STRING;  
   
  //  
  //   IP_ADDR_STRING   -   store   an   IP   address   with   its   corresponding   subnet   mask,  
  //   both   as   dotted   decimal   strings  
  //  
   
  typedef   struct   _IP_ADDR_STRING   {  
          struct   _IP_ADDR_STRING*   Next;  
          IP_ADDRESS_STRING   IpAddress;  
          IP_MASK_STRING   IpMask;  
          DWORD   Context;  
  }   IP_ADDR_STRING,   *PIP_ADDR_STRING;  
   
  //  
  //   ADAPTER_INFO   -   per-adapter   information.   All   IP   addresses   are   stored   as  
  //   strings  
  //  
   
  typedef   struct   _IP_ADAPTER_INFO   {  
          struct   _IP_ADAPTER_INFO*   Next;  
          DWORD   ComboIndex;  
          char   AdapterName[MAX_ADAPTER_NAME_LENGTH   +   4];  
          char   Description[MAX_ADAPTER_DESCRIPTION_LENGTH   +   4];  
          UINT   AddressLength;  
          BYTE   Address[MAX_ADAPTER_ADDRESS_LENGTH];  
          DWORD   Index;  
          UINT   Type;  
          UINT   DhcpEnabled;  
          PIP_ADDR_STRING   CurrentIpAddress;  
          IP_ADDR_STRING   IpAddressList;  
          IP_ADDR_STRING   GatewayList;  
          IP_ADDR_STRING   DhcpServer;  
          BOOL   HaveWins;  
          IP_ADDR_STRING   PrimaryWinsServer;  
          IP_ADDR_STRING   SecondaryWinsServer;  
          time_t   LeaseObtained;  
          time_t   LeaseExpires;  
  }   IP_ADAPTER_INFO,   *PIP_ADAPTER_INFO;  
   
  typedef   DWORD   (WINAPI*   GetAdaptersInfoFunc)(  
      PIP_ADAPTER_INFO   pAdapterInfo,     //   buffer   to   receive   data  
      PULONG   pOutBufLen                               //   size   of   data   returned  
  );  
  ///////////////////////////////////////////////////////////////////////////////  
   
  void   MacAddressToString(const   LPBYTE   Address,   LPSTR   lpsz,   int   nAddressLength   =   6)  
  {  
  int   n;  
  LPSTR   p   =   lpsz;  
  for   (n   =   0;   n   <   nAddressLength;   n++)  
  {  
  p   +=   sprintf(p,   n   ?   "-%02x"   :   "%02x",   Address[n]);  
  }  
  }  
   
  void   main()  
  {  
  HMODULE   hLib;  
  GetAdaptersInfoFunc   GetAdaptersInfo   =   NULL;  
   
  PIP_ADAPTER_INFO   pai   =   NULL;  
  DWORD   dwSize   =   0;  
  CHAR   szMac[64];  
   
  hLib   =   LoadLibrary("Iphlpapi.dll");  
  if   (!hLib)  
  {  
  puts("Failed   to   load   Iphlpapi.dll");  
  exit(1);  
  }  
   
  GetAdaptersInfo   =   (GetAdaptersInfoFunc)GetProcAddress(hLib,   "GetAdaptersInfo");  
  if   (GetAdaptersInfo   ==   NULL)  
  {  
  puts("Failed   to   load   GetAdaptersInfo   in   Iphlpapi.dll");  
  }  
   
  //   Get   size   of   buffer   needed:  
  GetAdaptersInfo(NULL,   &dwSize);  
   
  pai   =   (PIP_ADAPTER_INFO)GlobalAlloc(GPTR,   dwSize);  
  GetAdaptersInfo(pai,   &dwSize);  
   
  PIP_ADAPTER_INFO   p   =   pai;  
  while   (p)  
  {  
  MacAddressToString(p->Address,   szMac,   p->AddressLength);  
  printf("%s:   %s\n",   p->Description,   szMac);  
  p   =   p->Next;  
  }  
   
  GlobalFree(pai);  
  FreeLibrary(hLib);  
  }  
   
  Top

4 楼StdAfx(任杰)回复于 2003-08-01 21:52:07 得分 30

我做了严格的测试,采用  
  #include   <Iphlpapi.h>  
  #pragma   comment(lib,"Iphlpapi.lib")  
  方法肯定是可以的。  
  唯一需要注意的一点就是要安装platform   sdk而且设置  
  C:\Program   Files\Microsoft   SDK\Include为第一路径。  
   
  当然如果你没有安装platform   sdk那么你就采用我说的第二种方法吧。  
  Top

5 楼d_selenite(计算机的奴隶)回复于 2003-08-02 12:30:37 得分 0

我重新建了一个工程,再按第一种方法做就可以了  
  大概是原先的那个工程里改动些什么东西吧  
    谢谢   StdAfx(任杰)Top

6 楼d_selenite(计算机的奴隶)回复于 2003-08-02 12:33:24 得分 0

to:   StdAfx(任杰)  
  留个联系方法给我好吗?  
  我的MSN:   sele630@hotmail.comTop

相关问题

  • 用jdbc桥做一个连接函数时出现的怪错误!
  • 函数的小错误
  • 检查个函数错误
  • CreateThread()函数的183错误。
  • 为什么这个数据库连接里面的函数(自己弄的)出错误!!!
  • 请教在VC中使用InternetOpen函数编译时出现连接错误该怎么处理
  • 连接错误
  • 连接错误:
  • 连接错误
  • 连接错误

关键词

  • visual c++
  • 连接
  • 安装
  • sdk
  • ip
  • visual
  • getadaptersinfo
  • iphlpapi
  • adapter
  • pip

得分解答快速导航

  • 帖主:d_selenite
  • StdAfx
  • StdAfx
  • StdAfx

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo