2012-03-12 50 views
1

我正在寫一個activex控件,它將訪問並行端口並將字節寫入它。我可以成功打開端口,但是當我寫入時,它會掛起WriteFile函數。我在這裏錯過了什麼嗎?我正在使用Windows 7WriteFile並行端口掛起

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 2012-03-12 09:37:17

+0

好的。 WriteFile總是會掛起。 – RobH 2012-03-12 09:39:08

+0

哦。不能連接任何設備就像串口一樣測試它嗎? – Jeeva 2012-03-12 09:44:13