Главная страница
    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.007 c
1-18013
FireWorks
2002-05-24 11:28
2002.06.06
MapInfo


1-17953
Alexandr__
2002-05-28 11:39
2002.06.06
как извлечь кубический корень


3-17822
XXL
2002-05-16 16:20
2002.06.06
Как сделать сортировку в базе данных


1-18007
Shoo
2002-05-24 10:08
2002.06.06
Переименовать все файлы в папке


1-17992
BigBadMutuh
2002-05-23 20:48
2002.06.06
Как посчитать кол-во дней.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский