rem: FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err, 0, (LPTSTR)&soap->werrorstr, 256, NULL); wcstombs(soap->errorstr, soap->werrorstr, 256);
add: FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err, 0, (LPTSTR)&soap->werrorstr, sizeof(soap->werrorstr), NULL); wcstombs(soap->errorstr, soap->werrorstr, sizeof(soap->errorstr));
context: soap_strerror(struct soap *soap){ int err = soap->errnum;  if (!err)    err = soap_errno;  if (err)  {#ifndef UNDER_CE    return strerror(err);#else    FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err, 0, (LPTSTR)&soap->werrorstr, 256, NULL);    wcstombs(soap->errorstr, soap->werrorstr, 256);    return soap->errorstr;#endif  }  return "Operation interrupted or timed out";}