Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на WinApi, C++Builder, Visual C++


Информационный Канал Subscribe.Ru


Выпуск № 38-2003 BCBDEV.RU

Здравствуйте уважаемые подписчики!

Перед вами очередной выпуск рассылки "Программирование на WinApi"
Переводы многих функций Win32API, которые часто используются в данной рассылке, вы можете получать, подписавшись на дружественную рассылку "WinAPI на русском".
Справочник по функциям Win32API вы можете посмотреть на сайте BcbDev.ru в разделе MSDN по-русски.

Работа над ошибками 2 - Формирование текстовой информации об ошибке
Иногда требуется определить не только код последней ошибки, но и её текстовое описание. Для достижения этой цели, используйте нижеприведенную функцию. При передаче в эту функцию номера произошедшей ошибки в качестве параметра, ею будет возвращено символьное описание этой ошибки, полученное из системы.
char * GetSystemErrorMessage( int nNumError=0 )
{
    //Буфер для описания ошибки
    LPVOID lpMsgBuf;

    //Если передан код ошибки,  
    if(nNumError>0)
        //устанавливаем в качестве последней ошибки, ошибку с переданным номером
        SetLastError(nNumError);
    //Форматируем содержимое
    FormatMessage ( FORMAT_MESSAGE_ALLOCATE_BUFFER | // Выделяем буфер
                    FORMAT_MESSAGE_FROM_SYSTEM,      //Сообщение из системы
                    NULL,                           
                    GetLastError(),                  //Получаем последнее сообщение 
                    MAKELANGID( LANG_NEUTRAL,SUBLANG_DEFAULT),
                    ( LPTSTR ) & lpMsgBuf, 0, NULL );//Сюда помещаем сообщение
    //Возвращаем результат
    return (char*)lpMsgBuf;
}
Пример использования :)
int main()
{
    MessageBox(NULL,GetSystemErrorMessage(122),"",MB_OK);
    return 0;
}

Удачи Вам в Ваших делах Куковинец Андрей aka Juggernaut

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное