std::string getSystemError(int error_code, bool is_chiness_lang)
{
LPVOID strbuffer = NULL;
FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY |
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error_code,
MAKELANGID(is_chiness_lang ? LANG_CHINESE : LANG_ENGLISH, is_chiness_lang ? SUBLANG_CHINESE_SIMPLIFIED : SUBLANG_ENGLISH_US), (LPSTR)&strbuffer, 0, NULL);
string ret = (strbuffer == NULL) ? "" : (char*)strbuffer;
if (strbuffer)
LocalFree(strbuffer);
return ret;
}
error_code 通常由GetLastError( ) WSAGetLastError()等获得