GetLastError返回数字错误代码。要获取描述性错误消息(例如,显示给用户),可以调用FormatMessage:
// 此函数填充调用者定义的字符缓冲区(pBuffer) // 最大长度(cchBufferLength)与人类可读的错误消息 // Win32错误代码(dwErrorCode)。 // // 如果成功,则返回TRUE,否则返回FALSE。 // 如果成功,则保证pBuffer为NUL终止。 // 失败时,pBuffer的内容未定义。 BOOL GetErrorMessage(DWORD dwErrorCode, LPTSTR pBuffer, DWORD cchBufferLength) { if (cchBufferLength == 0) { return FALSE; } DWORD cchMsg = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, /* (not used with FORMAT_MESSAGE_FROM_SYSTEM) */ dwErrorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), pBuffer, cchBufferLength, NULL); return (cchMsg > 0); }
在C ++中,可以通过使用std::string类来大大简化接口:
#include <Windows.h> #include <exception> #include <stdexcept> #include <memory> #include <string> typedef std::basic_string<TCHAR> String; String GetErrorMessage(DWORD dwErrorCode) { LPTSTR psz = NULL; const DWORD cchMsg = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, // (不适用于FORMAT_MESSAGE_FROM_SYSTEM) dwErrorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), reinterpret_cast<LPTSTR>(&psz), 0, NULL); if (cchMsg > 0) { // 使用自定义删除器将缓冲区分配给智能指针,以便释放内存 // 万一String的c'tor抛出异常。 auto deleter = [](void* p) { ::HeapFree(::GetProcessHeap(), 0, p); }; std::unique_ptr<TCHAR, decltype(deleter)> ptrBuffer(psz, deleter); return String(ptrBuffer.get(), cchMsg); } else { throw std::runtime_error("检索错误消息字符串失败。"); } }
注意:这些功能也适用于HRESULT值。只需将第一个参数从更改为DWORD dwErrorCode即可HRESULT hResult。其余代码可以保持不变。
在我使用的JavaSpring应用程序中,从一个叫做的第三方,我们在JSON中获得错误响应,其中包含200个响应代码。 e. g. 如何将转换为400整数表示形式。Apacheinte似乎没有提供任何这样做的接口。
问题内容: 我想知道是否有任何方法可以将A转换为Java可编译代码。 我有一个比较表达式保存在数据库字段中。我想从数据库中检索它,然后在条件结构中对其求值。 有什么办法吗? 问题答案: 如果你使用的是Java 6,则可以尝试使用Java Compiler API。其核心是JavaCompiler类。你应该能够在内存中构造对象的源代码。 警告:由于某些奇怪的原因,我的平台上不存在JavaCompil
我目前正在python中使用Google Vision API检测图像中的汉字,但我发现Google将返回python源代码(如\XE7\X80\X86\XE7\XAB\X91),而不是一些人类可读字符串。 我如何将它转换成utf-8格式的人类可读文本? Requests.Exceptions.ConnectionError除外:打印(“Request Error”) 谢谢你
问题内容: 如何使用JavaScript将字符转换为ASCII码? 例如: 从“ \ n”获得10。 问题答案:
问题内容: 在下面查看我的代码。我有一个包含Unicode字符代码的JSON字符串。我将其转换为Java对象,然后将其转换回JSON字符串。但是,您可以看到输入和输出JSON字符串不匹配。是否可以使用Gson将我的对象转换为原始JSON字符串?我想和一样。 问题答案: 不幸的是,Gson似乎不支持它。所有JSON输入/输出分别集中在Gson(从2.8.0开始)和。可以使用其私有方法读取Unicod