![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| SmaLL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 557 Регистрация: 17.12.2002 Где: Voronezh Репутация: 1 Всего: 2 |
Что-то не пойму никак.
Хочу получить описание ошибки после выполнения функции CreateFile. В хелпе написано, что надо использовать FormatMessage. Делаю так:
Получаю fm = 25 А в lpMsgBuf = p>|..... Без строки SetLength(lpMsgBuf, 100); вылетает эксепшн "Access violation in kernel32.dll". Может что-нибудь подскажете ? -------------------- Что ни делается - всЁ к лучшему! SmallWeb Мой адрес не дом и не улица, мой адрес родной пивзавод! |
|||
|
||||
| [auxx] |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
Ага. Правильно.
|
||||
|
|||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
FORMAT_MESSAGE_ALLOCATE_BUFFER
Specifies that the lpBuffer parameter is a pointer to a PVOID pointer, and that the nSize parameter specifies the minimum number of TCHARs to allocate for an output message buffer. The function allocates a buffer large enough to hold the formatted message, and places a pointer to the allocated buffer at the address specified by lpBuffer. The caller should use the LocalFree function to free the buffer when it is no longer needed. var fm: Integer; lpMsgBuf: PChar; begin fm := FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER + FORMAT_MESSAGE_FROM_SYSTEM, nil, GetLastError, LANG_SYSTEM_DEFAULT, @lpMsgBuf, 100, nil); MessageBox(Handle, lpMsgBuf, nil, MB_OK); LocalFree(Cardinal(lpMsgBuf)); end; Это сообщение отредактировал(а) cully - 11.2.2003, 06:30 -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
еще правельнее будет:
fm := FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER + FORMAT_MESSAGE_FROM_SYSTEM, nil, GetLastError, LANG_SYSTEM_DEFAULT, @lpMsgBuf, 0, nil); -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| SmaLL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 557 Регистрация: 17.12.2002 Где: Voronezh Репутация: 1 Всего: 2 |
Спасибо, работает. -------------------- Что ни делается - всЁ к лучшему! SmallWeb Мой адрес не дом и не улица, мой адрес родной пивзавод! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |