代码如下:
DWORD dwRet;
IP_ADAPTER_INFO adapterInfo;
ULONG ulSize = sizeof(IP_ADAPTER_INFO);
dwRet = GetAdaptersInfo(&adapterInfo, &ulSize);
if (dwRet == ERROR_SUCCESS)
{
USES_CONVERSION;
dwRet = GetAdapterIndex(A2W(adapterInfo.AdapterName), &m_ulIfIndex);
if (dwRet != NO_ERROR)
TraceErrorMsg(dwRet);
         else
         {
unsigned long ulNTEContext, ulNTEInstance;
dwRet = AddIPAddress(0xDC702AD5, 0xFFFFFF00, m_ulIfIndex,  &ulNTEContext, &ulNTEInstance);
if (dwRet != NO_ERROR)
TraceErrorMsg(dwRet);
}
}
else
TraceErrorMsg(dwRet);调用GetAdapterIndex函数时总是返回错误码 = 55(指定的网络资源或设备不再可用);
而调用AddIPAddress函数时总是返回错误码 = 87(参数不正确)。为什么会返回错误呢?该如何使用这两个函数?

解决方案 »

  1.   

    这个应该是NetBIOS的函数吧?我记不清楚了,星期五帮你看一下
      

  2.   

    哈哈 DWORD dwRet;
    IP_ADAPTER_INFO adapterInfo;
    ULONG ulSize = sizeof(IP_ADAPTER_INFO);
    dwRet = GetAdaptersInfo(&adapterInfo, &ulSize);
    if (dwRet == ERROR_SUCCESS)
    {
    // USES_CONVERSION;
    //dwRet = GetAdapterIndex(A2W(adapterInfo.AdapterName), &m_ulIfIndex);
    // if (dwRet != NO_ERROR)
    // TraceErrorMsg(dwRet);
    // else
    // {
    unsigned long ulNTEContext, ulNTEInstance;
    dwRet = AddIPAddress(0xDC702AD5, 0xFFFFFF00, adapterInfo.Index, &ulNTEContext, &ulNTEInstance);
    if (dwRet != NO_ERROR)
    TraceErrorMsg(dwRet);
    // }
    }
    else
    TraceErrorMsg(dwRet);最好AddIPAddress(inet_addr(chIP),inet_addr(chMask),pAdapterInfo->Index,&uNetContext,&uNetInstance);