GetIfEntry()函数的作用是获得网卡的信息,比如:网卡是否被禁用、网线是否插好等.
但是我用的时候总是有问题,函数返回值总是13(也就是ERROR_INVALID_DATA),不知道是什么原因,请以前用过该函数的兄台指点一下,谢谢.代码如下:
int main(int argc, char* argv[])
{
    typedef DWORD (WINAPI *PGAINFO)(MIB_IFROW *); 
    HMODULE hLibrary;
    PMIB_IFROW pIfRow=(PMIB_IFROW)new char[sizeof(MIB_IFROW)];
    PGAINFO pGainfo;    hLibrary=LoadLibrary(TEXT("iphlpapi.dll"));
    pGainfo=(PGAINFO)GetProcAddress(hLibrary,"GetIfEntry");
    pIfRow->dwIndex=2;        //2是我机器上适配器的顺序号,也可能是其他值,我怀疑                   //是这个值不对导致GetIfEntry()函数失败,但我试过穷                   //举所有DWORD表示范围类的数都不对                       if(DWORD dwResult=pGainfo(pIfRow)!=NO_ERROR)
    {
        printf("%d\r\n",dwResult);
    }    return 0;
}

解决方案 »

  1.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/getifentry.asp
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mib/mib/mib_ifrow.asp
      

  2.   

    还是不对,把msdn上的例子原封不动的打上去也是GetIfTable()这个函数failed,不知道是不是操作系统或iphlpapi.dll的版本的问题?