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;
}
但是我用的时候总是有问题,函数返回值总是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;
}
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mib/mib/mib_ifrow.asp