2012-03-12 4 views
1

Я пишу элемент управления activex, который будет обращаться к параллельному порту и записывать в него байты. Я могу успешно открыть порт, но когда я его записываю, он зависает в функции WriteFile. Я что-то пропустил? Я использую Windows 7WriteFile to Parallel port hangs

HANDLE portHwd = CreateFile(_T("\\\\.\\LPT1"), 
         GENERIC_WRITE, 
         0, 
         NULL, 
         OPEN_EXISTING, 
         0, 
         NULL); 
     if (portHwd) 
     { 
      char outBuffer[] = _T("This is a test\r\n"); 
      int sz_buffer = strlen(outBuffer); 

      DWORD bytes_written; 
      if (!WriteFile(portHwd, 
        outBuffer, 
        sz_buffer , 
        &bytes_written, 
        NULL)) 
      { 
        CloseHandle(portHwd); 
        GetLastError(); 
        return 1; 
      } 

      CloseHandle(portHwd); 
     } 

ответ

1

Если выходной буфер порта заполнен, тогда WriteFile будет висеть, пока не будет места для завершения вашего запроса. Есть ли что-то в порту и чтение?

+0

Ничего не связано с портом – Jeeva

+0

ОК. WriteFile всегда будет висеть тогда. – RobH

+0

о. Не могу я проверить его без подключения каких-либо устройств, как последовательный порт? – Jeeva