我正在使用VC 中的Windows Web Service API开发一个应用程序。为了进行错误处理,我正在使用API WsGetErrorProperty()
和WsGetErrorString()
。当我调用后者API时,WsGetErrorString()
,我会收到以下错误:错误屏幕截图
错误的字符串带有资源ID" 0x88",对于语言ID找不到 '0x809'
问题发生在Windows 10 Enterprise 64bit上。我尝试将系统语言环境更改为我们,但问题仍然存在。在所有其他Windows平台(Windows 10 Enterprise 32bit,Windows 10 Pro 32/64bit,Windows 7 32/64位(都可以正常工作。
英国(GB(有效吗?请参阅语言标识符常数和字符串。
在服务器端进行wwsapi调用时,请确保使用该属性创建的WS_ERROR:
WS_ERROR_PROPERTY_LANGID设置为1033(US-ENGLISH(。
换句话说:
WS_ERROR *CreateWSError()
{
WS_ERROR *ws_error;
LANGID lang = MAKELANGID(1033, SUBLANG_NEUTRAL);
WS_ERROR_PROPERTY prop = {WS_ERROR_PROPERTY_LANGID, &lang, sizeof(lang)};
WsCreateError(&prop, 1, &ws_error);
return ws_error;
}
并将返回的指针传递给后续呼叫。
在客户端:
ws_proxy_property prop = {ws_proxy_fault_lang_id,& lang,sizeof(lang(};
xxxx_createserviceproxy(0,//模板值& prop,//属性1,//属性计数& serviceproxy,错误(((