Текущий архив: 2007.12.02;
Скачать: CL | DM;
Вниз
POverlapped Найти похожие ветки
← →
F@T@L_Err0r (2007-11-07 15:39) [0]Здравсвуйте.У меня такой вопрос:Пытаюсь записать информацию в сом порт, но при
pi:POverlapped;
begin
pi.hEvent := CreateEvent(nil, True, False, nil);
....
вылазит ошибка access voltation???
← →
Сергей М. © (2007-11-07 15:42) [1]Память под pi выделять за тебя кто будет, Пушкин ?
← →
Сергей М. © (2007-11-07 15:42) [2]точнее не под pi, а под pi^
← →
F@T@L_Err0r (2007-11-07 15:44) [3]а как???пример если можно.
← →
Palladin © (2007-11-07 15:45) [4]new(pi)
← →
Palladin © (2007-11-07 15:46) [5]ты б почитал уже чего нибудь чтоли...
← →
F@T@L_Err0r (2007-11-07 15:49) [6]спасиба.а еще такой вопрос в прцедуре
var Buf:array[0..5] of byte;
s:cardinal;
begin
ReadFile(hPort,Buf,SizeOf(Buf),s,nil);
......
программа останавливается и бесконечно долго думает...точнее подвисает.
settimouts все равно 0.
← →
Сергей М. © (2007-11-07 15:53) [7]Чукча точно не читатель)
Какого же лешего ты передаешь последним параметром nil, если в вопросе ты озаботился именно overlapped-режимом ?
← →
F@T@L_Err0r (2007-11-07 15:55) [8]ну ето старый код...не успел обновить...но проблема ведь не в етом?
← →
Сергей М. © (2007-11-07 15:57) [9]
> проблема ведь не в етом?
>
А в чем же, по-твоему ? В магнитных бурях на Луне ?)
← →
F@T@L_Err0r (2007-11-07 16:00) [10]ну поставил я pi вместо nil.теперь вообще перестали считывать данные из порта.
← →
Reindeer Moss Eater © (2007-11-07 16:01) [11]так У тебя снова старый код и ты снова его не успел поправить
← →
Palladin © (2007-11-07 16:01) [12]ну значит не читает он оттуда ничего
← →
F@T@L_Err0r (2007-11-07 16:03) [13]Вот код:
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);
........
← →
Reindeer Moss Eater © (2007-11-07 16:03) [14]И где анализ результата ReadFile и где проверка GetLastError если у тебя оверлаппед чтение?
← →
Сергей М. © (2007-11-07 16:03) [15]
> теперь вообще перестали считывать данные из порта
Ты справку проштудировал по overlapped-режиму ввода-вывода ?
← →
Anatoly Podgoretsky © (2007-11-07 16:10) [16]> F@T@L_Err0r (07.11.2007 15:55:08) [8]
А зачем нам обсуждать посторонний код?
← →
F@T@L_Err0r (2007-11-07 16:10) [17]прверка 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) [18]> F@T@L_Err0r (07.11.2007 16:03:13) [13]
Поставь точку останова на многоточии.
← →
Anatoly Podgoretsky © (2007-11-07 16:11) [19]> F@T@L_Err0r (07.11.2007 15:49:06) [6]
Она не повисает, а ждет SizeOf(Buf) байт
← →
Reindeer Moss Eater © (2007-11-07 16:12) [20]и справку я смотрел все сделал как там написано...
if ReadFile(hPort,Buf,SizeOf(Buf),s,pi) then showmessage("Good")
В случае с оверлаппед все как раз наеборот.
Успешный вызов REadFile обязан вернуть False.
← →
Сергей М. © (2007-11-07 16:15) [21]
> справку я смотрел все сделал как там написано
Нифига ты ее не читал.
Или читал, но сделал наоборот.
← →
F@T@L_Err0r (2007-11-07 16:23) [22]блин ну ладна буду искать сам где ошибка...
← →
Сергей М. © (2007-11-07 16:29) [23]Нефига ее искать.
В справке даже пример работы в этом режиме имеется.
← →
Германн © (2007-11-07 19:18) [24]
> POverlapped [D7, XP]
>
> F@T@L_Err0r (07.11.07 15:39)
http://delphimaster.net/view/2-1193902088/
> F@T@L_Err0r (07.11.07 16:23) [22]
>
> блин ну ладна буду искать сам где ошибка...
>
Да чего её искать, эту ошибку. И так ясно в чём она :-)
Страницы: 1 вся ветка
Текущий архив: 2007.12.02;
Скачать: CL | DM;
Память: 0.52 MB
Время: 0.037 c