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 結構的流程控制成員值。 如果您使用較舊形式的 模式 語法, BuildCommDCB 函式會設定 DCB 結構的流程控制成員,如下所示:
- 對於結尾不是 x 或 p 的字串:
- fInX、 fOutX、 fOutXDsrFlow 和 fOutXCtsFlow 全都設定為 FALSE
- fDtrControl 設定為 DTR_CONTROL_ENABLE
- fRtsControl 設定為 RTS_CONTROL_ENABLE
- 對於以 x 結尾的字串:
- fInX 和 fOutX 都設定為 TRUE
- fOutXDsrFlow 和 fOutXCtsFlow 都設定為 FALSE
- fDtrControl 設定為 DTR_CONTROL_ENABLE
- fRtsControl 設定為 RTS_CONTROL_ENABLE
- 針對以 p 結尾的字串:
- fInX 和 fOutX 都設定為 FALSE
- fOutXDsrFlow 和 fOutXCtsFlow 都設定為 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 |