soap_s2byte(struct soap *soap, const char *s, char *p)
{ if (s)
{ long n;
char *r;
n = soap_strtol(s, &r, 10);
if (/*s == r || *r ||*/ n < -128 || n > 127)
soap->error = SOAP_TYPE;
*p = (char)n;
}
return soap->error;
{ if (s)
{ long n;
char *r;
n = soap_strtol(s, &r, 10);
if (/*s == r || *r ||*/ n < -128 || n > 127)
soap->error = SOAP_TYPE;
*p = (char)n;
}
return soap->error;
}
在stdsoap2.cpp中找到这个函数的实现,并注释掉我代码中注释的部分,错误就消失了,具体原因跟这个strtol函数有关,详细原因也没有搞懂。有大神知道的,可以指点一二