Недопустимый дескриптор окна.
Суть такая, есть боольшой проект(не игра), после добавления своего контрола пошла такая трабла при закрытии приложения : «Project vmi.exe raised exception class EOSError with message ‘System Error’. Code: 1400. Недопустимый дескриптор окна.» Я так понимаю хэндл моего контрола несколько раз освобождается, но все проверял по 100 раз и отлаживал — все верно.
В интернете подобные вопросы находил, но толкового ответа не нашел, я бы с отладчика нашел бы при закрытии, да прекомпилированые модули нельзя по строчкам отлаживать.
Есть идеи куда копать?
#1
13:19, 6 дек 2010
лови эксепшен и забей)
#2
14:50, 6 дек 2010
none4
> лови эксепшен и забей)
LexGD, никогда не маскируй эксепшены.
Что значит добавление своего контрола?
Куда и как добавляешь?
Ты в курсе, что зарегистрированные объекты освобождаются автоматически?
- 1 frag / 2 deaths
- Постоялец
#3
15:25, 6 дек 2010
none4
> лови эксепшен и забей)
#4
20:27, 6 дек 2010
>лови эксепшен и забей)
Не, это не дело.
>Что значит добавление своего контрола?
Написал свой визуальный компонент, тыркнул его на форму. Все работает как часы, но при завершении программы такой вот эксцепшн.
>Ты в курсе, что зарегистрированные объекты освобождаются автоматически?
Конешно, когда родительский класс освобождается, то и объекты навешанные на него тоже.
Я даже отловить это исключение не могу, стек ничего не говорит.
#5
20:48, 6 дек 2010
Сделай логирование внутри своего компонента.
Если он удаляется несколько раз — ты это увидишь.
#6
23:04, 6 дек 2010
>Сделай логирование внутри своего компонента.
>Если он удаляется несколько раз — ты это увидишь.
В нулевом посте писал — отлаживал по 100 раз, дело не в нем.
В том то и трабла.
#7
23:14, 6 дек 2010
LexGD
> дело не в нем.
в нем, в нем. Просто ты не до конца отладил.
Тогда итеративным методом отлаживай:
Убери из компонента вообще ВСЕ, оставь только минимум, который позволяет его разместить на форме.
Проверь. Если по прежнему косяк — смотри чем твой код отличается от аналогичных примеров.
Если все ок — добавляй функционал.
В итоге найдешь код, который генерирует проблему.
System error code 1400 недопустимый дескриптор окна что это
Добро пожаловать, Гость. Пожалуйста Войдите или Регистрация | |
Новости: |
1С++ users forum › 1С++ и прочие расширения v7 › FormEx › System Error. Code: 1400. Недопустимый дескриптор окна. |
(Группа Модераторов: 1c++ moderator)
Страницы: 1 | Отправить Печать |
System Error. Code: 1400. Недопустимый дескриптор окна. (число прочтений — 7990 ) |
Форум Chemtable Software
Здравствуйте! Не так давно у меня при открытии основного операционного окна Reg Organizer cтало появлятся следующее сообщение:»System Error.Code:1400 Недопустимый дескриптор окна».При этом программа работает,хотя несколько замедлилась,особенно при очистке дисков(сканирование проходит по времени на много дольше,чем ранее).Может подскажете,что значит эта ошибка и можно ли от неё избавиться. Заранее-спасибо.
Chemtable Software Команда разработчиков Сообщения: 1470 Зарегистрирован: Пн сен 23, 2002 10:22 pm
Re: Ошибка при запуске Reg Organizer
Сообщение Chemtable Software » Пн авг 12, 2013 3:29 pm
Похоже на внешние причины. Уточните, пожалуйста, какая операционная система и установлены ли какие-то сторонние антивирусы или подобное программное обеспечение.
Andriyan Сообщения: 3 Зарегистрирован: Ср июн 20, 2012 10:48 am
Re: Ошибка при запуске Reg Organizer
Сообщение Andriyan » Вт авг 13, 2013 8:09 pm
Похоже на внешние причины. Уточните, пожалуйста, какая операционная система и установлены ли какие-то сторонние антивирусы или подобное программное обеспечение.
Аватара пользователя
Konstantin Polyakov Команда разработчиков
Здравствуйте,Константин!Спасибо за ответ.Вообще-то это сообщение не систематическое.Вот пока больше оно не появлялось,но всё же бывает. По Вашей просьбе: ОС-Win 8 Pro,антивир- AVG IS 2013 и Ccleaner.
Andrijan Сообщения: 3 Зарегистрирован: Пн май 25, 2015 5:01 pm
Re: Ошибка при запуске Reg Organizer
Сообщение Andrijan » Пн июн 12, 2017 3:18 pm
Konstantin Polyakov писал(а): Здравствуйте.
Похоже на внешние причины. Уточните, пожалуйста, какая операционная система и установлены ли какие-то сторонние антивирусы или подобное программное обеспечение.
Здравствуйте!Вот спустя почти 4 года вынужден опять вернуться к этому моему вопросу ,,Ошибка при запуске Reg Organizer».Похоже,что никто кроме меня не сталкивается с этой проблемой и она опять появилась у меня.Не помогла переустановка RO.Правда,изменилось окружение:Win10 Pro,ESET NOD32 AV,CCleaner,Privacy Erazer Free,но этими программами я пользуюсь давно,а ошибка начала выскакивать буквально несколько дней тому назад.В чём же всё-таки дело?Вы же спецы и создатели своего творения и неужели вы тоже в недоумении?
Недопустимый дескриптор окна error 1400
Проблема в следующем:
В отдельном потоке запускается обработка текстовых файлов на предмет поиска совпадений по строке. «ОНО» само работает прекрасно, но тут я вздумал сделать кнопочку «остановки», просто напросто устанавливая указатель текущего читаемого файла на конец списка. И вот тогда произошел крах. Программа зависает, визуальные компоненты типа мемо не отрисовываются, а потом вылезает ошибка Error 1400 : Недопустимый дескриптор окна.
не могу понять почему, и что не так.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
// Сам класс потока - читалки --FileReaderThread (TThread)-- procedure FileReaderThread.Execute; var fileName: string; begin while not Terminated do begin fileName:= ''; Section.Enter; if FileNum < FList.Count-1 then begin fileName := FList[FileNum]; inc(FileNum); end else Terminate; Section.Leave; if fileName <> '' then ProcessFile(fileName); end; end; -- Form (TForm) -- // кнопочка "стоп" в окне программы procedure TForm8.SpeedButton4Click(Sender: TObject); begin FileNum := List.Count; end; procedure TForm8.OnEndThread(Sender: TObject); var // frt: TThread absolute Sender; frt: FileReaderThread absolute Sender; begin LikeConsole.Lines.Add(frt.Name + ' завершил работу'); Dec(ThreadCount); if ThreadCount = 0 then begin StopP := Now; Elapsed := MilliSecondsBetween(StartP, StopP); memo1.Lines.Add('Потрачено времени : '+ inttoStr(Elapsed)); ShowMessage('Готово'); end; end;