T
tbx1980
Unregistered / Unconfirmed
GUEST, unregistred user!
以下三段是我串口操作中设置串口DCB的API<br>//========================================================<br>// 1. 没有使用GetLastError(),程序进入程序块报告错误<br>//--------------------------------------------------------<br>if (not SetCommState(ComHandle,struDcb)) then<br>begin Msg := '设置串口错误';<br> Application.MessageBox(Msg,'系统提示');<br> Result := False;<br> Exit;<br>end;<br>//========================================================<br><br>//========================================================<br>// 2. 使用DWORD类型变量获取GetLastError()返回<br>// 程序依旧进入程序块报错<br>//--------------------------------------------------------<br>ErrorCode: DWORD;<br> <br>if (not SetCommState(ComHandle,struDcb)) then<br>begin<br> ErrorCode := GetLastError();<br> Msg := '设置串口错误';<br> Application.MessageBox(Msg,'系统提示');<br> Result := False;<br> Exit;<br>end;<br>//========================================================<br><br>//========================================================<br>// 3. 使用String类型变量接受经过WordToStr()转换后的值,<br>// 程序没有进入程序块报错,顺利通过.<br>//--------------------------------------------------------<br>ErrorCode: String;<br> <br>if (not SetCommState(ComHandle,struDcb)) then<br>begin<br> ErrorCode := WordToStr(GetLastError());<br> Msg := '设置串口错误';<br> Application.MessageBox(Msg,'系统提示');<br> Result := False;<br> Exit;<br>end;<br>//========================================================<br><br>我怎么也搞不明白为什么,请大家指点.<br>