2012-03-12 3 views
1

병렬 포트에 액세스하여 바이트를 쓰는 ActiveX 컨트롤을 작성하고 있습니다. 나는 포트를 성공적으로 열 수 있지만 WriteFile 함수에서 멈춰 씁니다. 내가 여기 아무것도 못봤 니? Windows 7을 사용 중입니다.병렬 포트에 WriteFile이 응답하지 않습니다.

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

관련 문제