![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
COM-порт [D7, WinXP]
Федор © (2004-11-09 21:19:00)Настраиваю порт:
hCom := CreateFile('COM2',
GENERIC_READ OR GENERIC_WRITE,
0, // comm devices must be opened w/exclusive-access
nil, // no security attrs
OPEN_EXISTING, // comm devices must use OPEN_EXISTING
0, // not overlapped I/O
0 // hTemplate must be NULL for comm devices
);
if hCom = INVALID_HANDLE_VALUE then
raise Exception.Create('COM2 íå ïîäêëþ÷àåòñÿ.');
GetCommState(hCom, DCB);
DCB.BaudRate := 9600;
DCB.ByteSize := 8;
// DCB.Parity := EVENPARITY;
DCB.Parity := NOPARITY;
DCB.StopBits := ONESTOPBIT;
SetCommState(hCom, DCB);
Timeouts.ReadIntervalTimeout := 50;
Timeouts.ReadTotalTimeoutMultiplier := 1;
Timeouts.ReadTotalTimeoutConstant := 5000;
Timeouts.WriteTotalTimeoutMultiplier := 0;
Timeouts.WriteTotalTimeoutConstant := 0;
SetCommTimeouts(hCom, Timeouts);
Потом пишу:
Res := WriteFile(hCom, s, Length(s) + 1, Written, nil);
Дома все работает. А на работе - нет, а там-то как раз и нужно. hCom определен, но получается Res = False и Written = 0.
Куда смотреть, господа?
jack128 (2004-11-10 01:28:00) [1]Федор (09.11.04 21:39) [3]
Названия всех констант, которые возвращает GetLastError начинаются в прифекса ERROR_ .
В Windows.pas эти константы описаны в порядке возрастания их значений - поэтому узнать эти названия не так уж и сложно. А по названию и представить, что за ошибка произошла можно..
Федор (2004-11-09 21:39:00) [2]>jack128
За RaiseLastWin32Error спасибо. Завтра посмотрю.
Федор (2004-11-09 21:36:00) [3]Ну, GetLastError говорит: 36 (или 39? - на работе дело было). И что с ним дальше делать?
jack128 (2004-11-09 21:34:00) [4]GetLastError/RaiseLastWin32Error что говорит??