1

パラレル ポートにアクセスしてバイトを書き込む ActiveX コントロールを作成しています。ポートを正常に開くことができますが、書き込み時に WriteFile 関数でハングします。ここで何か見逃しましたか?Windows 7 を使用しています

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);
      }
4

1 に答える 1

1

ポートの出力バッファがいっぱいの場合、WriteFile は要求を完了する余地ができるまでハングします。ポートに何かが接続されていて、そこから読み取っていますか?

于 2012-03-12T09:29:20.367 に答える