public static void ShowHelpMsg(string msg) { var fmFlags = new FmFlags(); fmFlags.Show(); fmFlags.DrawStr(msg); }
/// <summary> /// 获取系统错误信息的描述 /// <para>see <see cref="Marshal.GetLastWin32Error"/></para> /// <para>封装 <see cref="Kernel32.FormatMessage(FmFlags, IntPtr, uint, uint, ref string, uint, IntPtr)"/></para> /// </summary> /// <param name="errorCode">系统错误码</param> /// <returns></returns> public static string GetSysErrroMessage(uint errorCode) { #if false string message = null; FmFlags flags = FmFlags.FORMAT_MESSAGE_ALLOCATE_BUFFER | FmFlags.FORMAT_MESSAGE_IGNORE_INSERTS | FmFlags.FORMAT_MESSAGE_FROM_SYSTEM; Kernel32.FormatMessage(flags, IntPtr.Zero, errorCode, 0, ref message, 255, IntPtr.Zero); #else StringBuilder message = new StringBuilder(255); FmFlags flags = FmFlags.FORMAT_MESSAGE_IGNORE_INSERTS | FmFlags.FORMAT_MESSAGE_FROM_SYSTEM; Kernel32.FormatMessage(flags, IntPtr.Zero, errorCode, 0, message, 255, IntPtr.Zero); #endif return(message.ToString().Trim()); }
public extern static uint FormatMessage(FmFlags dwFlags, IntPtr lpSource, uint dwMessageId, uint dwLanguageId, StringBuilder lpBuffer, uint nSize, IntPtr Arguments);
public extern static uint FormatMessage(FmFlags dwFlags, IntPtr lpSource, uint dwMessageId, uint dwLanguageId, [MarshalAs(UnmanagedType.LPTStr)] ref string lpBuffer, uint nSize, IntPtr Arguments);