Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];

Вниз

GetLastError   Найти похожие ветки 

 
SPeller   (2002-04-05 13:43) [0]

Как получить текстовое представление ошибки, код которой возвращает данная функция ??


 
VuDZ   (2002-04-05 13:46) [1]

MSDN:

LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// Process any inserts in lpMsgBuf.
// ...
// Display the string.
MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );


 
SPeller   (2002-04-05 13:50) [2]

Уууу... извините, VuDZ, но в Си я 0, нельзя ли на Дельфи, если не трудно?
Да... спасибо за ответ.


 
VuDZ   (2002-04-05 14:25) [3]

LPVOID lpMsgBuf;
обявляешь просто _указатель_ на что угодно, можешь типа PChar

FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,

NULL == nil


GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language

MAKELANGID определён как MAKELANGID(p, s) ((((WORD )(s)) << 10) | (WORD )(p))
Т.е. второй параметр типа слово (16 бит) сдвигается на 10 бит и потом выполняется логичиское или (OR) с первым параметром.
LANG_NEUTRAL = 0
SUBLANG_DEFAULT = 1, но это должно быть определено где то.

(LPTSTR) &lpMsgBuf,
0,
NULL
);


(LPTSTR) &lpMsgBuf - указатель на указатель :>

MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );

Вывод сообщения ил ещё что-то

// Free the buffer.
LocalFree( lpMsgBuf );

Удаление буфера. Лучше через API.


 
Юрий Федоров   (2002-04-05 14:28) [4]

А еще проще :
SysErrorMessage(GetLastError),
модуль SysUtils


 
SPeller   (2002-04-05 14:48) [5]

Thanks All !!!



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
1-18050
der
2002-05-25 12:35
2002.06.06
Работа с потоками. Требуется пошаговая объяснялка.


1-17954
AL2002
2002-05-28 10:21
2002.06.06
Delphi Manual?


1-17846
ETeRNaL
2002-05-23 05:40
2002.06.06
Коммандная строка


14-18105
CHEk
2002-04-03 22:45
2002.06.06
КАК сделать чтобы проограма была полностью невидимой


1-18020
Cossys
2002-05-22 18:22
2002.06.06
Запуск приложения - на TaskBar не выводить





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский