希望能用VC测出计算机中有多少块网卡!请诸位高人指点给出代码,感激不尽!

解决方案 »

  1.   

    look under the registryHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCardseach networkcard has a subkey with values
      

  2.   

    使用IP Helper(SDK)的GetAdaptersInfo API函数,它可以枚举出当前OS下的有效的网卡信息,以下是使用GetAdaptersInfo()函数取得网卡信息的函数,供参考。类似问题参见
    http://expert.csdn.net/Expert/topic/2342/2342503.xml?temp=.9633448
    http://expert.csdn.net/Expert/topic/2277/2277774.xml?temp=.2602045include <Iphlpapi.h>
    #pragma comment(lib, "Iphlpapi.lib") 
    void GetNICInfo()
    {
    IP_ADAPTER_INFO    *IpAdaptersInfo =NULL;
    IP_ADAPTER_INFO    *IpAdaptersInfoHead =NULL;

    IpAdaptersInfo = (IP_ADAPTER_INFO *) GlobalAlloc(GPTR, sizeof( IP_ADAPTER_INFO ));
    if (IpAdaptersInfo == NULL)
    {
    //-return FALSE;
    }

    DWORD dwDataSize = sizeof( IP_ADAPTER_INFO );
    DWORD dwRetVal = GetAdaptersInfo(IpAdaptersInfo,&dwDataSize);if ( ERROR_SUCCESS != dwRetVal)
    {
    GlobalFree( IpAdaptersInfo );
    IpAdaptersInfo = NULL; if( ERROR_BUFFER_OVERFLOW == dwRetVal)
    {
    IpAdaptersInfo =(IP_ADAPTER_INFO *) GlobalAlloc( GPTR, dwDataSize );
    if (IpAdaptersInfo == NULL)
    {
          //-return FALSE;
    }
    if ( ERROR_SUCCESS != GetAdaptersInfo( IpAdaptersInfo, &dwDataSize ))
    {
         GlobalFree( IpAdaptersInfo );
         //-return FALSE;
    }

             }
    else 
    {
    //return FALSE;
    }

    }IpAdaptersInfoHead = IpAdaptersInfo;
    do
    {
    if (IpAdaptersInfo->Type == MIB_IF_TYPE_ETHERNET)
    {
    //Get NIC Service Name(GUID Value)
    AfxMessageBox(IpAdaptersInfo->AdapterName);
    }
    IpAdaptersInfo = IpAdaptersInfo->Next;

    }while (IpAdaptersInfo);

    if (IpAdaptersInfoHead != NULL)
    {
    GlobalFree( IpAdaptersInfoHead );
    }
    }
      

  3.   

    to shootingstars(流星) 
    你说的没错