Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
ВнизTOverlapped Найти похожие ветки
← →
Призрак © (2006-05-11 14:23) [0]Где найти ответ на вопрос: *что это такое?* :))) Я с трудом откопал статейку про работу с COM-портом, там используется эту штука, но что это - не могу понять... Ни хелп найти, ни статьи, ни даже вопрос...
← →
Призрак © (2006-05-11 14:30) [1]ага, вроде что-то такое нашёл... заголовок со служебной информацией для работы с async I/O... понятно...
← →
balepa © (2006-05-11 14:33) [2]Удалено модератором
← →
Пусик © (2006-05-11 15:45) [3]Удалено модератором
← →
Призрак © (2006-05-11 22:20) [4]Удалено модератором
← →
Пусик © (2006-05-12 09:56) [5]Удалено модератором
← →
Eraser © (2006-05-12 11:16) [6]
> Призрак © (11.05.06 14:23)
вот держи ещё статейку, где используется Overlapped.
http://www.delphimaster.ru/articles/named_pipes/index.html
← →
balepa © (2006-05-12 11:26) [7]Удалено модератором
← →
Пусик © (2006-05-12 11:31) [8]Удалено модератором
← →
Призрак © (2006-05-13 00:14) [9]Eraser, спасибо...
Любители поругаться, довожу до вашего сведения что на форумах подобного плана принято опубликовывать найденное решение, чтобы 1) другие не продолжали напрасно напрягаться с ответами и 2) другие новички могли увидеть решение.
← →
Шпиён (2006-05-13 01:37) [10]
> Призрак © (13.05.06 00:14) [9]
дык... Пусик-то как раз на твоей стороне была...просто это все - оффтопик...
впрочем - ЭТО тоже оффтопик %)
← →
Призрак © (2006-05-13 01:55) [11]а я всё равно ничего не видел потому что вырезали до того как я пришёл :)))
← →
Шпиён (2006-05-13 02:05) [12]type
POverlapped = ^TOverlapped;
_OVERLAPPED = record
Internal: DWORD;
InternalHigh: DWORD;
Offset: DWORD;
OffsetHigh: DWORD;
hEvent: THandle;
end;
BOOL WriteFile(
HANDLE hFile, // handle to file to write to
LPCVOID lpBuffer, // pointer to data to write to file
DWORD nNumberOfBytesToWrite, // number of bytes to write
LPDWORD lpNumberOfBytesWritten, // pointer to number of bytes written
LPOVERLAPPED lpOverlapped // pointer to structure needed for overlapped I/O
);
При выполнении асинхронного ввода-вывода параметр lpOverlapped должен содержать адрес проинициализированной структуры TOVERLAPPED.
Эта структура содержит 5 элементов.
Offset, OffsetHigh, hEvent - должны быть проинициализированы до вызова ReadFile или WriteFile.
Internal и InternalHigh - устанавливаются драйвером устройства и могут быть проанализированы по завершении ввода-вывода.
Offset и OffsetHigh - формируют 64-разрядное значение начальной позицииб с которой вы хотите начать выполнение ввода-вывода. При синхронном вводе-выводе система знает, что начинать доступ к файлу надо с позицииб определяемой указателем файлаю По завершении такой операции система автоматически обновляет указатель файла, и следующая операция может отследить, где завершилась предыдущая.
При асинхронном вводе-выводе система не использует указатель файла, поэтому, чтобы избежать путаницы в случае нескольких обращений к одному объекту, все запросы асинхронного ввода-вывода должны указывать в структуре OVERLAPPED начальную позицию для доступа к файлу.
← →
Шпиён (2006-05-13 02:15) [13]Элементы Offset и OffsetHigh не игнорируются нефайловыми устройствами - установите их равными 0, иначе запрос ввода-вывода не выполнится, и при обращении к функции GetLastError вы получите ERROR_INVALID_PARAMETER.
hEvent - используется для получения уведомления о завершении ввода-вывода.
Internal - служит для хранения кода ошибки, которая может возникнуть при обработке запроса ввода-вывода.
InternalHigh - по завершении запроса ввода-вывода этот параметр содержит число переданных быйтов.
(C) сильно сокращенный Рихтер
Подробнее -
Дж. Рихтерб Дж. Кларк
"Программирование серверных приложений для Windows 2000"
← →
Призрак © (2006-05-13 02:17) [14]Спасибо... Это теперь работает, теперь непонятно другое :)
http://delphimaster.net/view/2-1147470240/
← →
Призрак © (2006-05-13 02:29) [15]Аааааааааа... так вот откуда инвалид параметр!.. :)))))))))))
← →
Шпиён (2006-05-13 02:33) [16]ERROR_IO_PENDING - означает, что ошибки еще нет, операция ввода-вывода еще не завершилась.
ERROR_INVALID_PARAMETER - см.
Шпиён (13.05.06 02:15) [13]
Элементы Offset и OffsetHigh не игнорируются нефайловыми устройствами - установите их равными 0, иначе запрос ввода-вывода не выполнится, и при обращении к функции GetLastError вы получите ERROR_INVALID_PARAMETER.
← →
Призрак © (2006-05-13 02:49) [17]Ооооо святые кремниевые паладины... естественно она не завершилась, я же ещё никакой операции не делал!! Мне непонятно почему тогда WaitCommEvent не ждёт а ошибку выдаёт... А нули я там поставил, - они и до этого там стояли...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.28;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.012 c