Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Круглый стол
  
Правила КС
>> Настройки

Фильтр вопросов
>> Новые вопросы
отслеживать по
>> Новые ответы

Избранное

Страница вопросов
Поиск по КС


Специальные проекты:
>> К л ю к в а
>> Г о л о в о л о м к и

Вопрос №

Задать вопрос
Off-topic вопросы

Помощь

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  10:11[Войти] | [Зарегистрироваться]
Ответ на вопрос № 36888

Вопросы с аналогичными сообщениями об ошибках:
  • Invalid window handle (8)

    20-10-2005 01:52
    Дорогие друзья.
    Возникла в моей жизни проблема работы с COM-портами.
    Информации по этому вопросу в и-нете достаточно, особенно на этом сайте.
    Гл. вопрос который передо мной стоял: получение инфы с ком порта. Для этого я написал 2 приложения (отправляющее и принимающее(двух-поточное!!!)) используя функции WIN Api.
    Соединил непосредственно порты кабелем, один с другим и стал тестить все это дело.
    К моему удивлению то что отправляла одна программа, вторая с успехом принимала. *** После 5-10 запусков этих программ - принимающая перестала работать. А винда стала выдавать след. ошибку:
    System Error - Code : 1400 Недопустимый дескриптор окна.
    Зашел я под другой операционкой и запустил эти же самые приложения. Далее начиная с ***^)
    В чем дело? прог хватает всего на неск. сессий.
    И еще вопрос: уверен что Win API не самый простой способ работы с портами и наслышан о некой библиотеке TMS Async32 и даже ее скачал, но вот беда, понятия не имею как с ней работать, ибо в английском не особо. Быть может есть документация на русском или же кто нить из вас уважаемые подскажет осн. принципы работы с ней.
    Заранее благодарен, извиняюсь за ламерские вопросы если что:)

    [+] Добавить в избранные вопросы

    Отслеживать ответы на этот вопрос по RSS

    Ответы:


    Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице.
    Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.

    07-11-2005 08:05 | Комментарий к предыдущим ответам
    Самое грамотное - программировать работу с СОМ-портом (как и с любым другим "железом")индивидуально под конкретную задачу. Для этого читаем про порт на уровне DOS (чтобы понимать как работать с микросхемой на уровне прерываний, дабы знать, что и когда в принципе делает виндовый драйвер), изучаем возможности API и...вперед.
    Попытки пользовать "чужое" хороши для темпа обмена до 600 байт/сек.

    07-11-2005 06:49
    Работа с Com-портом очень хорошо описана в статье О.Титова.
    Она есть в Королевстве - doc, а также на www.rs232.ru - html.
    Это - теория, а практика - Turbo power AsyncPro.
    Практически все с Com-портом, а также модемом, факсом и др.
    можно и нужно делать его средствами. Все там сделано грамотно - как учат,
    масса дополнительных возможностей, подробная документация (увы - на английском).
    Поставляется в исходных текстах - можно поучиться.
    Загрузить можно с sourceforge.net или citkit.ru. Эти ссылки я нашел на
    delphi.icm.edu.pl - очень полезный сайт для дельфистов, а еще есть www.torry.net. Пример применения для Вашего случая могу прислать.

    20-10-2005 07:38
    Вполне возможно, что в одной из API функций передается Application.Handle или хэндл формы, а когда программа запущена из под Delphi это может глючить. Например
    ShellExecute(application.Handle,'print','c:\1.txt',nil,nil,sw_show);
    в режиме отладки дает "интереснейшие" результаты.

    20-10-2005 03:45
    Так никто из отвечающих и не посмотрел, что такое ошибка 1400. А на самом деле это ERROR_INVALID_WINDOW_HANDLE и возникает она ТОЛЬКО при работе с окнами (SendMessage,GetWindowRect итд), так что к портам это ни малейшего отношения не имеет, просто совпадение. А автору не помешало бы кинуть кусок кода где возникает ошибка, иначе тут вообще не о чем говорить.

    20-10-2005 03:17
    System Error - Code : 1400 Недопустимый дескриптор окна - это значит, что указанный Вами в качестве первого параметра хэндл порта таковым не является. Варианты:
    1. Вы не проверяете открылся ли порт при CreateFile (это самое вероятное) по значению возвращаемого хэндла. Возможно, что из-за некорректных закрытия порта и "заваливания" обслуживающего порт потока.
    2. В процессе работы в переменную, хранящую хэндл, попадает "мусор" из-за ошибки в Вашем коде.
    3. Все!!!

    20-10-2005 02:39
    привет
    если это VARIAN ASYNC32 COMPONENT, то:
    1. устанавливаем DeviceName := 'COM1'
    2. скорость обмена BaudRate := 19200
    3. четность Parity := paNone
    4. стопбиты Stopbits := sb10
    5. бит в байте Databits := da8
    6. открывает порт Open
    7. ловим в собитии OnRxChar приходящие данные
    8. пищем методом Write уходящие данные
    9. закрываем порт Close

    и все

    20-10-2005 02:36 | Вопрос к автору: запрос дополнительной информации
    В API функциях часто приходится передавать Handle, возможно именно в этих функциях и проблема.
    Как запускается принимающая программа? Из Delphi(в режиме отладки) или отдельно?

    Добавьте свое cообщение

    Вашe имя:  [Войти]
    Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
    контрольный вопрос:
    "Мы с тобой одной крови — ты и я!". Чьи это заветные слова?
    в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
    Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.
    Тип сообщения:
    Текст:
    Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве

    Вопросы с аналогичными сообщениями об ошибках:
  • Invalid window handle (8)


    Страница избранных вопросов Круглого стола.
  •   
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования