1、错误代码如下:
unsigned __stdcall SetIp(void *)
{
bool bSetIpResult = false;
WriteLog("%s,%s,%s,%s"szMac,szIp,szNetmask,szGateway);
bSetIpResult = SetSpecifiedAdapter(szMac,szIp,szNetmask,szGateway,NULL,NULL,NULL);
if(bSetIpResult){
WriteLog("SetSpecifiedAdapter设置ip地址等成功!");
}else{
WriteLog("SetSpecifiedAdapter设置ip地址等失败!");
}
}
2、很纳闷,我查看作为实参的几个变量的值都是正常的,而且都是全局变量,竟然会报非法访问内存的bug。于是我按路哥的方法,把全局变量赋给本地的变量,结果问题解决了。太神奇了。代码如下:
unsigned __stdcall SetIp(void *)
{
bool bSetIpResult = false;
char szMac1[40],szIp1[40],szNetmask1[40],szGateway1[40];
strcpy(szMac1,szMac);
strcpy(szIp1,szIp);
strcpy(szNetmask1,szNetmask);
strcpy(szGateway1,szGate