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)