0

我的意思是这些: http: //msdn.microsoft.com/en-us/library/windows/desktop/ms681382 (v=vs.85).aspx

以下是每个错误的三个数据:

0 (0x0)
ERROR_SUCCESS
The operation completed successfully.

1 (0x1)
ERROR_INVALID_FUNCTION
Incorrect function.

2 (0x2)
ERROR_FILE_NOT_FOUND
The system cannot find the file specified.

因此,错误号是从 GetLastError() 返回的,我也知道如何使用 FormatMessage http://msdn.microsoft.com/en-us/library/windows/desktop/ms679351(v=vs.85)获取描述.aspx。但我的问题是如何获取这些错误标志:ERROR_INVALID_FUNCTION, ERROR_FILE_NOT_FOUND - 作为字符串。我知道我可以自己创建一个地图,但我想知道这些是否还没有像错误描述一样存储在 Windows 中的某个位置。

[OT] 这里是错误描述的片段。

char *err_msg;
int num_chars = FormatMessage(
  FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
  NULL,
  errCode,
  MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // default language
  (LPTSTR) &err_msg,
  0,
  NULL
);
4

1 回答 1

3

Windows 中没有内置这样的方法。

#define 标识符特定于 C 和 C++ 语言,不用于例如 C#。另一件需要注意的是,根据所使用的 API,对于相同的错误代码可以有多个不同的#define,例如 ERROR_INVALID_HANDLE (Win32) 和 WSA_INVALID_HANDLE (Winsock)。

于 2013-02-03T18:20:55.470 回答