这是获胜机器的MAC地址来改IP地址的代码,能帮忙解决下吗?要详细
CString getmac(CString ip)
{
unsigned char byMAC[6];
ULONG macAddLen = 6;
IPAddr   dwIP;
dwIP=inet_addr(ip);
CString temp;
if (SendARP(dwIP, (unsigned long)NULL,(PULONG)byMAC, &macAddLen) == NO_ERROR )
{
temp.Format("%.2x-%.2x-%.2x-%.2x-%.2x-%.2x",byMAC[0],byMAC[1],byMAC[2],byMAC[3],byMAC[4],byMAC[5],byMAC[6]); 
return temp;
}
else
{
   return "error";
}
}

解决方案 »

  1.   

    temp.Format("%.2x-%.2x-%.2x-%.2x-%.2x-%.2x",byMAC[0],byMAC[1],byMAC[2],byMAC[3],byMAC[4],byMAC[5],byMAC[6]); 
    把最后一个参数byMAC[6]去掉
      

  2.   

    unsigned char byMAC[6]; 大小为6的数组,元素分别是0 1 2 3 4 5
    byMAC[6]这是访问越界
      

  3.   

    这段代码好像很简单嘛,没什么特别难的地方。函数用法可以参照MSDN
      

  4.   

    我都不知道这些定义的是什么
    ULONG macAddLen = 6; 
    IPAddr  dwIP; 
    dwIP=inet_addr(ip); 
    CString temp;