BuildCommDCB函数使用设备控制字符串中指定的值填充指定的DCB结构。设备控制字符串使用模式命令的语法。
BOOL BuildCommDCB(
LPCTSTR 【lpDef】, | //指向设备控制字符串的指针 |
LPDCB 【lpDCB】 | //指向设备控制块的指针 |
); |
参数
【lpDef】
指向指定设备控制信息的以空值终止的字符串的指针。字符串必须与模式命令的命令行参数的格式相同。例如,以下字符串指定波特率1200,无奇偶校验,8位数据位和1位停止位:
baud=1200 parity=N data=8 stop=1
如果设备名称包含在字符串中,则它将被忽略,但必须指定有效的设备,如下所示:
COM1: baud=1200 parity=N data=8 stop=1
有关模式命令语法的更多信息,请参阅操作系统的最终用户文档。
【lpDCB】
指向要填写的DCB结构的指针。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
BuildCommDCB功能仅调整DCB参数特定影响的DCB结构的成员,但有以下例外:
*如果指定的波特率为110,该函数将停止位设置为2,以与Windows NT或MS-DOS 模式命令保持兼容。
*默认情况下,BuildCommDCB禁用XON / XOFF和硬件流控制。要启用流量控制,您必须显式设置DCB结构的相应成员。
BuildCommDCB功能仅填写DCB结构的成员。要将这些设置应用于串行端口,请使用SetCommState功能。
有更旧和更新的模式命令语法。BuildCommDCB功能支持这两种形式。但是,您不能将两种形式混合在一起。
模式命令语法的较新形式允许您显式设置DCB 结构的流控制成员的值。如果您使用旧版模式语法,BuildCommDCB功能将设置DCB结构的流控制成员,如下所示:
*对于不以x或p结尾的字符串,例如96,n,8,1或任何其他较旧的模式字符串,
fInX,fOutX,fOutXDsrFlow和fOutXCtsFlow都设置为FALSE
fDtrControl设置为DTR_CONTROL_ENABLE
fRtsControl设为RTS_CONTROL_ENABLE
*对于96,n,8,1,x或任何其他较旧的模式字符串,使用x完成的字符串:
fInX,fOutX都设置为TRUE
fOutXDsrFlow,fOutXCtsFlow都设置为FALSE。
fDtrControl设置为DTR_CONTROL_ENABLE
fRtsControl设置为RTS_CONTROL_ENABLE
*对于诸如96,n,8,1,p或任何其他使用p完成的较旧格式的模式字符串的字符串:
fInX,fOutX都设置为FALSE
fOutXDsrFlow,fOutXCtsFlow都设置为TRUE。
fDtrControl设置为DTR_CONTROL_HANDSHAKE
fRtsControl设置为RTS_CONTROL_HANDSHAKE
也可以看看