123456789101112131415161718192021222324252627282930313233 |
- using System;
- using System.Text;
- namespace Microsoft.Win32
- {
- /// <summary>
- /// Kernel32扩展
- /// </summary>
- public static partial class Util
- {
- /// <summary>
- /// 获取与指定的 Win32 错误代码关联的详细说明。
- /// </summary>
- /// <param name="nErrorCode">Win32 错误代码。</param>
- /// <returns>错误的详细说明。</returns>
- public static string GetErrorMessage(int nErrorCode)
- {
- StringBuilder lpBuffer = new StringBuilder(0x100);
- if (UnsafeNativeMethods.FormatMessage(NativeMethods.FORMAT_MESSAGE_IGNORE_INSERTS | NativeMethods.FORMAT_MESSAGE_FROM_SYSTEM | NativeMethods.FORMAT_MESSAGE_ARGUMENT_ARRAY, IntPtr.Zero, nErrorCode, 0, lpBuffer, lpBuffer.Capacity + 1, IntPtr.Zero) == 0)
- return ("Unknown error (0x" + Convert.ToString(nErrorCode, 0x10) + ")");
- int length = lpBuffer.Length;
- while (length > 0)
- {
- char ch = lpBuffer[length - 1];
- if ((ch > ' ') && (ch != '.'))
- break;
- length--;
- }
- return lpBuffer.ToString(0, length);
- }
- }
- }
|