Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

POverlapped [D7, XP]


Страницы:   1 2

F@T@L_Err0r ©   (2007-11-07 15:39:00) 

Здравсвуйте.У меня такой вопрос:Пытаюсь записать информацию в сом порт, но при

   pi:POverlapped;
begin
pi.hEvent := CreateEvent(nil, True, False, nil);
....

вылазит ошибка access voltation???


Германн   (2007-11-07 19:18:00) [1]


> POverlapped [D7, XP]
>
> F@T@L_Err0r   (07.11.07 15:39)

http://delphimaster.ru/cgi-bin/forum.pl?id=1193902088&n=18


> F@T@L_Err0r   (07.11.07 16:23) [22]
>
> блин ну ладна буду искать сам где ошибка...
>

Да чего её искать, эту ошибку. И так ясно в чём она :-)


Сергей М.   (2007-11-07 16:29:00) [2]

Нефига ее искать.
В справке даже пример работы в этом режиме имеется.


F@T@L_Err0r   (2007-11-07 16:23:00) [3]

блин ну ладна буду искать сам где ошибка...


Сергей М.   (2007-11-07 16:15:00) [4]


> справку я смотрел все сделал как там написано


Нифига ты ее не читал.
Или читал, но сделал наоборот.


Reindeer Moss Eater   (2007-11-07 16:12:00) [5]

и справку я смотрел все сделал как там написано...
if ReadFile(hPort,Buf,SizeOf(Buf),s,pi) then showmessage('Good')

В случае с оверлаппед все как раз наеборот.
Успешный вызов REadFile обязан вернуть False.


Anatoly Podgoretsky   (2007-11-07 16:11:00) [6]

> F@T@L_Err0r  (07.11.2007 15:49:06)  [6]

Она не повисает, а ждет SizeOf(Buf) байт


Anatoly Podgoretsky   (2007-11-07 16:10:00) [7]

> F@T@L_Err0r  (07.11.2007 16:03:13)  [13]

Поставь точку останова на многоточии.


F@T@L_Err0r   (2007-11-07 16:10:00) [8]

прверка overlapped:

if pi.hEvent = Null then showmessage('Null') else showmessage(good);
проверка ReadFile:

if ReadFile(hPort,Buf,SizeOf(Buf),s,pi) then showmessage('Good') else showmessage('Null');

и справку я смотрел все сделал как там написано...


Anatoly Podgoretsky   (2007-11-07 16:10:00) [9]

> F@T@L_Err0r  (07.11.2007 15:55:08)  [8]

А зачем нам обсуждать посторонний код?


F@T@L_Err0r   (2007-11-07 16:03:00) [10]

Вот код:

var Buf:array[0..5] of byte;
   pi:POverlapped;
   s:cardinal;
begin
new(pi);
pi.hEvent := CreateEvent(nil, True, False, nil);
ReadFile(hPort,Buf,SizeOf(Buf),s,pi);
........


Сергей М.   (2007-11-07 16:03:00) [11]


> теперь вообще перестали считывать данные из порта


Ты справку проштудировал по overlapped-режиму ввода-вывода ?


Reindeer Moss Eater   (2007-11-07 16:03:00) [12]

И где анализ результата ReadFile и где проверка GetLastError если у тебя оверлаппед чтение?


Palladin   (2007-11-07 16:01:00) [13]

ну значит не читает он оттуда ничего


Reindeer Moss Eater   (2007-11-07 16:01:00) [14]

так У тебя снова старый код и ты снова его не успел поправить


F@T@L_Err0r   (2007-11-07 16:00:00) [15]

ну поставил я pi вместо nil.теперь вообще перестали считывать данные из порта.


Сергей М.   (2007-11-07 15:57:00) [16]


> проблема ведь не в етом?
>


А в чем же, по-твоему ? В магнитных бурях на Луне ?)


F@T@L_Err0r   (2007-11-07 15:55:00) [17]

ну ето старый код...не успел обновить...но проблема ведь не в етом?


Сергей М.   (2007-11-07 15:53:00) [18]

Чукча точно не читатель)

Какого же лешего ты передаешь последним параметром nil, если в вопросе ты озаботился именно overlapped-режимом ?


F@T@L_Err0r   (2007-11-07 15:49:00) [19]

спасиба.а еще такой вопрос в прцедуре

var Buf:array[0..5] of byte;
   s:cardinal;
begin
ReadFile(hPort,Buf,SizeOf(Buf),s,nil);
......
программа останавливается и бесконечно долго думает...точнее подвисает.
settimouts все равно 0.


Palladin   (2007-11-07 15:46:00) [20]

ты б почитал уже чего нибудь чтоли...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо