共用方式為


buildCommDCBA 函式 (winbase.h)

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

語法

BOOL BuildCommDCBA(
  [in]  LPCSTR lpDef,
  [out] LPDCB  lpDCB
);

參數

[in] lpDef

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

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

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

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

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

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

[out] lpDCB

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

傳回值

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

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

備註

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

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

模式 語法有 較舊且較新的形式。 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
目標平台 Windows
標頭 winbase.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

通訊功能

通訊資源

DCB

SetCommState