IPHLPAPI的GetAdaptersInfo()调用结果为何是87?
ULONG uListSize=1;
PIP_ADAPTER_INFO pAdapter;
int nAdapterIndex = 0;
DWORD dwRet = GetAdaptersInfo((PIP_ADAPTER_INFO)&tempChar, uListSize);
if (dwRet == ERROR_BUFFER_OVERFLOW)
{
PIP_ADAPTER_INFO pAdapterListBuffer =
(PIP_ADAPTER_INFO)new(char[uListSize]);
dwRet = GetAdaptersInfo(pAdapterListBuffer, &uListSize);
if (dwRet == ERROR_SUCCESS)
{
.....
下面的就不贴了;
问题就是,在第一次调用GetAdaptersInfo是,正常情况返回的是111;
可是,偶把这个代码放进线程里执行,返回就是87;
为什么会这样?
87是什么错误?
GETLASTERROR()返回的错误值是0;
无比郁闷,困惑求解;
问题点数:100、回复次数:10Top
1 楼lbird(heng)回复于 2004-08-03 12:00:37 得分 0
markTop
2 楼PrettyMurphy(土豆)回复于 2004-08-03 12:06:55 得分 0
GZTop
3 楼xjb2001(便衣超人)回复于 2004-08-03 12:23:43 得分 0
满头雾水,自己顶
有谁能告诉我
DWORD dwRet = GetAdaptersInfo((PIP_ADAPTER_INFO)&tempChar, uListSize);
dwRet==87是什么错误也好啊;
Top
4 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-08-03 12:26:48 得分 0
错误代码87表示你传入的参数无效(在Error.h中有定义).用在多线程环境下要注意思同步问题。其实第一次你调用GetAdapterInfo(NULL,&nSize);就行,可能你多线程环境下传入的tempChar有误,tempChar是何东东?Top
5 楼yuanbocsut(井冈星火)回复于 2004-08-03 12:41:54 得分 0
http://community.csdn.net/Expert/topic/3237/3237322.xml?temp=.8967554Top
6 楼yuanbocsut(井冈星火)回复于 2004-08-03 12:42:48 得分 0
PIP_ADAPTER_INFO pinfo=NULL;
void CGetComputeInfoDlg::GetLocalInfoWithIpHelp()
{
if (pinfo!=NULL)
{
delete (pinfo);
}
unsigned long nError;
nError=GetAdaptersInfo(pinfo,&len);
if (nError==0)
{
FillLocalInfo();
}
if (nError==ERROR_NO_DATA)
{
AfxMessageBox("No adapter information exists for the local computer");
}
if (nError==ERROR_NOT_SUPPORTED)
{
AfxMessageBox("GetAdaptersInfo is not supported by the operating system running on the local computer");
}
if (nError==ERROR_BUFFER_OVERFLOW)
{
pinfo= (PIP_ADAPTER_INFO)malloc(len);
nError=GetAdaptersInfo(pinfo,&len);
if (nError==0)
{
pDNSInfo=(PFIXED_INFO)malloc(len);
nError=GetNetworkParams(pDNSInfo,&len);
if (nError==0)
{
FillLocalInfo();
}
}
}
return;
}
Top
7 楼yuanbocsut(井冈星火)回复于 2004-08-03 12:45:58 得分 50
绝对可以搞定你的问题了,呵呵,怎么突然下线了,自己看,我在这里运行得很好
还有
unsigned long len=0;
PFIXED_INFO pDNSInfo;Top
8 楼xjb2001(便衣超人)回复于 2004-08-03 17:32:53 得分 0
DentistryDoctor(牙科医生)
yuanbocsut(打盹的神仙)
的方法都成;
偶的代码是从XPPIG哪里抄来的
偶去骂他;Top
9 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-08-03 17:36:42 得分 50
这些代码吧,你安装一个PlatformSDK,其中的示例很清楚。MSDN中的示例程序也可以读读。Top
10 楼xjb2001(便衣超人)回复于 2004-08-03 17:40:00 得分 0
上面的代码是在
VC的网络版中,小猪的置顶的帖子里抄来的;
偶在那个帖子里,+了你说的提醒了;
做个朋友啊,偶的QQ是 14454667Top




