|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.06.2009, 21:32 | #1 |
Пользователь
Регистрация: 27.03.2009
Сообщений: 27
|
Что за EAccessViolation?
Написал прогу с com-объектом. Но во время выполнения одного из методов этого объекта (объект грамматически анализирует слово, злополучный метод загружает словари для определения слова) возникает исключение EAccessViolation.
Что это значит и как бороться? |
30.06.2009, 21:44 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
это значит что программа обращается к чужой памяти(неверный указатель/несуществующий обьект и тд)
прошерстить код и использовать защищенные блоки Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
01.07.2009, 14:55 | #3 |
Пользователь
Регистрация: 27.03.2009
Сообщений: 27
|
Код метода написан не мной довольно сложен, проверить не смогу. А что такое защищенные блоки?
|
01.07.2009, 15:25 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
В действительности нужно код смотреть
I'm learning to live...
|
|
01.07.2009, 23:42 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
защищенные блоки
Код:
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
06.07.2009, 12:58 | #6 |
Пользователь
Регистрация: 27.03.2009
Сообщений: 27
|
Не происходит инициалиазции этого объекта. Переменная HRESULT равна 1, а должан быть S_OK, если я все правильно понимаю. Что означает 1?
|
06.07.2009, 13:39 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Вызови RaiseLastWin32Error чтоб посмотреть текст ошибки.
I'm learning to live...
Последний раз редактировалось Stilet; 06.07.2009 в 13:43. |
|
07.07.2009, 09:22 | #8 |
Пользователь
Регистрация: 27.03.2009
Сообщений: 27
|
А что это такое RaiseLastWin32Error, функция? Как ее использовать?
Процедура вызвала сообщение: Project <project-name> raised exception class EOSError with message 'A call to an OS function failed'. К чему бы это? Последний раз редактировалось Stilet; 30.07.2009 в 16:14. |
30.07.2009, 16:17 | #9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
I'm learning to live...
|
|
31.07.2009, 11:19 | #10 |
Пользователь
Регистрация: 27.03.2009
Сообщений: 27
|
hr := CoInitialize(nil);
if (hr <> S_OK) then begin RaiseLastWin32Error; end Вот так я применил процедуру и она выдала текст: Project <project-name> raised exception class EOSError with message 'A call to an OS function failed'. Что это значит? CoInitialize это API'шная функция? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Еще раз о EAccessViolation. | Andre1723 | Общие вопросы Delphi | 12 | 23.02.2009 01:39 |
Ошибка: "EAccessViolation with message..." | Ravnica | Помощь студентам | 4 | 04.11.2007 20:46 |
Ошибка EAccessViolation | num8er | Общие вопросы Delphi | 6 | 10.10.2007 08:00 |
то такое мастерство в программировании, что такое мастер программист и что он может? | Cezar | Свободное общение | 29 | 02.06.2007 23:48 |
А что, если всем объедениться и создать что-нибудь глобальное? | kuzmich | Свободное общение | 61 | 31.05.2007 21:01 |