win32 API error code -> C# description
От: Аноним  
Дата: 13.08.10 07:11
Оценка:
Добрый день всем

Подскажите, можно ли имея только код ошибки из Win32 API, например ERROR_ALREADY_INITIALIZED, получить его описание:
An attempt was made to perform an initialization operation when initialization has already been completed.

Как?
Re: win32 API error code -> C# description
От: _FRED_ Черногория
Дата: 13.08.10 07:26
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день всем


А>Подскажите, можно ли имея только код ошибки из Win32 API, например ERROR_ALREADY_INITIALIZED, получить его описание:

А>An attempt was made to perform an initialization operation when initialization has already been completed.
А>Как?

var message = new Win32Exception(ERROR_ALREADY_INITIALIZED).Message;
Help will always be given at Hogwarts to those who ask for it.
Re: win32 API error code -> C# description
От: Jolly Roger  
Дата: 13.08.10 07:28
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день всем


А>Подскажите, можно ли имея только код ошибки из Win32 API, например ERROR_ALREADY_INITIALIZED, получить его описание:

А>An attempt was made to perform an initialization operation when initialization has already been completed.

А>Как?


System.ComponentModel.Win32Exception. Или самому импортировать FormatMessage

[DllImport("kernel32.dll")]
        public static extern int FormatMessage(
            int Flags, IntPtr Source, int MessageID, int LanguageID, 
            StringBuilder Buffer, int Size, IntPtr Args);

        public static string GetErrorMessage(int ErrorCode)
        {
            var buf = new StringBuilder(256);
            int len = FormatMessage(0x1200, IntPtr.Zero, 
                ErrorCode, 0, buf, buf.Capacity, IntPtr.Zero);
            if (len <= 0) return "";
            int k = buf.Length - 1;
            for (; k > 0; k--)
            {
                char u = buf[k];
                if (u > ' ' && u != '.') break;
            }
            buf.Length = k + 1;
            buf.Append('.');
            return buf.ToString();
        }
    }
"Нормальные герои всегда идут в обход!"
Re[2]: win32 API error code -> C# description
От: Аноним  
Дата: 13.08.10 07:35
Оценка:
Здравствуйте, _FRED_, Вы писали:
_FR>
_FR>var message = new Win32Exception(ERROR_ALREADY_INITIALIZED).Message;
_FR>

Спасибо!
Re[2]: win32 API error code -> C# description
От: Аноним  
Дата: 13.08.10 07:54
Оценка:
Здравствуйте, Jolly Roger, Вы писали:
JR>System.ComponentModel.Win32Exception. Или самому импортировать FormatMessage
Спасибо. Описание из Win32Exception мне подходит %)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.