共用方式為


BuildCommDCBW 函式 (winbase.h)

以裝置控制字串中指定的值填入指定的 DCB 結構。 裝置控制字串會使用 模式 命令的語法。

語法

BOOL BuildCommDCBW(
  [in]  LPCWSTR lpDef,
  [out] LPDCB   lpDCB
);

參數

[in] lpDef

裝置控制資訊。 函式會採用此字串、加以剖析,然後在由 lpDCB所指向的 DCB 結構中設定適當的值。

字串的格式必須與命令的命令行自變數 模式相同:

COMx[:][baud=b][parity=p][data=d][stop=s][to={on|off}][xon={on|off}][odsr={on|off}][octs={on|off}][dtr={on|off|hs}][rts={on|off|hs|tg}][idsr={on|off}]

裝置名稱是選擇性的,但如果已使用,則必須指定有效的裝置。

例如,下列字串指定 1200 的傳輸速率、無同位、8 個數據位和 1 個停止位:

baud=1200 parity=N data=8 stop=1

[out] lpDCB

接收資訊之 DCB 結構的指標。

傳回值

如果函式成功,則傳回值為非零值。

如果函式失敗,傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

言論

BuildCommDCB 函式只會調整受 lpDef 參數特別影響之 DCB 結構的成員,但有下列例外狀況:

  • 如果指定的baud速率為110,函式會將停止位設定為2,以與系統的 模式 命令保持相容。
  • 根據預設,BuildCommDCB 會停用 XON/XOFF 和硬體流程控制。 若要啟用流程控制,您必須明確設定 DCB 結構的適當成員。
BuildCommDCB 函式只會填入 DCB 結構的成員。 若要將這些設定套用至序列埠,請使用 SetCommState 函式。

模式 語法有較舊且較新的形式。 BuildCommDCB 函式支援這兩種形式。 不過,您無法將這兩種窗體混合在一起。

模式 語法的較新形式可讓您明確設定 DCB 結構的流程控制成員值。 如果您使用舊格式的 模式 語法,BuildCommDCB 函式會設定 DCB 結構的流程控制成員,如下所示:

  • 對於未以 x 或 p 結尾的字串:
    • fInXfOutXfOutXDsrFlowfOutXCtsFlow 全都設定為 FALSE
    • fDtrControl 設定為 DTR_CONTROL_ENABLE
    • fRtsControl 設定為 RTS_CONTROL_ENABLE
  • 若為以 x 結尾的字串:
    • fInXfOutX 都設定為 true
    • fOutXDsrFlowfOutXCtsFlow 都設定為 FALSE
    • fDtrControl 設定為 DTR_CONTROL_ENABLE
    • fRtsControl 設定為 RTS_CONTROL_ENABLE
  • 針對以 p 結尾的字串:
    • fInXfOutX 都設定為 false
    • fOutXDsrFlowfOutXCtsFlow 都設定為 true
    • fDtrControl 設定為 DTR_CONTROL_HANDSHAKE
    • fRtsControl 設定為 RTS_CONTROL_HANDSHAKE

注意

winbase.h 標頭會將 BuildCommDCB 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows XP
支援的最低伺服器 Windows Server 2003
目標平臺 窗戶
標頭 winbase.h (包括 Windows.h)
連結庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

Communications Functions

通訊資源

DCB

SetCommState