Re: Запись в LPT порт
- From
- Vadim V Vorobjev ()
- To
- All
- Date
- 2001-04-07T15:24:57Z
- Area
- SU.WINDOWS.NT.PROG
From: Vadim V Vorobjev <vadim_cj@netway.ru>
Sergei Zhilin wrote:
>
> Народ!
>
> Помогите справиться с проблемой. Не пойму, почему не хочет работать вот
> такая конструкция:
>
> ...
>
> h = CreateFile("lpt1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
>
А это что за файл такой ?
Если не ошибаюсь ты указываешь файл с именем LPT1. в текущем каталоге, а
вовсе не устройство...
Кажись надо писать "\\\\.\\lpt1".
> if (h == INVALID_HANDLE_VALUE)
> HandleError(GetLastError());
> else {
> DWORD dwWritten;
> BYTE pBuf[] = { 0xff, 0x00, 0xff };
>
> if ( 0==WriteFile(h, pBuf,sizeof(pBuf), &dwWritten, NULL) )
> HandleError(GetLastError());
> else
> cout << "Success. " << dwWritten << " bytes written" << endl;
> }
>
> ...
>
> После вызова WriteFile все останавливается и ожидает непонятно чего,
> т.е. выхода из функции я дождаться не могу. Во всевозможной
> документации (и, прежде всего, в Platform SDK) все рассуждения и
> примеры на эту тему даются в применении к COM-портам. Для них описано
> все в деталях: и про синхронный, и про асинхронный режимы записи. Про
> параллельный же порт лишь упоминается, что все делается аналогично,
> нужно лишь имя порта в CreateFile поменять. Однако, для COM-ов все
> работает на ура, с LPT же возникают вот такие проблемы. LPT, в который
> пытаюсь писать, свободен. Чего я не учитываю? Может какие-то таймауты
> предварительно поднастроить требуется?
> --
> Отправлено через сервер Talk.Ru - http://www.talk.ru
--- ifmail v.2.15dev5
* Origin: Ekaterinburg telegraph (2:5020/400)