[StructLayout(LayoutKind.Sequential)]
private struct COMSTAT
{
public int fCtsHold;
public int fDsrHold;
public int fRlsdHold;
public int fXoffHold;
public int fXoffSent;
public int fEof;
public int fTxim;
public int fReserved;
public int cbInQue;
public int cbOutQue;
} [StructLayout(LayoutKind.Sequential)]
private struct DCB
{
//taken from c struct in platform sdk
public int DCBlength; // sizeof(DCB)
public int BaudRate; // current baud rate
// these are the c struct bit fields, bit twiddle flag to set
public int fBinary; // binary mode, no EOF check
public int fParity; // enable parity checking
public int fOutxCtsFlow; // CTS output flow control
public int fOutxDsrFlow; // DSR output flow control
public int fDtrControl; // DTR flow control type
public int fDsrSensitivity; // DSR sensitivity
public int fTXContinueOnXoff; // XOFF continues Tx
public int fOutX; // XON/XOFF out flow control
public int fInX; // XON/XOFF in flow control
public int fErrorChar; // enable error replacement
public int fNull; // enable null stripping
public int fRtsControl; // RTS flow control
public int fAbortOnError; // abort on error
public int fDummy2; // reserved
public ushort wReserved; // not currently used
public ushort XonLim; // transmit XON threshold
public ushort XoffLim; // transmit XOFF threshold
public byte ByteSize; // number of bits/byte, 4-8
public byte Parity; // 0-4=no,odd,even,,space
public byte StopBits; // 0,1,2 = 1, 1.5, 2
public char XonChar; // Tx and Rx XON character
public char XoffChar; // Tx and Rx XOFF character
public char ErrorChar; // error replacement character
public char EofChar; // end of input character
public char EvtChar; // received event character
public ushort wReserved1; // reserved; do not use
}以上这两个结构的声明在应用中根本不对,下面的声明才是正确的.但是微软MSDN上的却是和上面的声明一样的,但是微软的Win32API.txt却是按下面的说的,在我应用中下面的也是对的.
现在疑问,这上面的解释,在实际中为什么不能用,这两种解释有什么不同?
什么情况下各自适用?? [StructLayout(LayoutKind.Sequential)]
private struct DCB
{
internal int DCBlength;
internal int BaudRate;
internal int fBitFields ;//See Comments Win32API.Txt fBitFields;
internal Int16 wReserved;
internal Int16 XonLim;
internal Int16 XoffLim;
internal byte ByteSize;
internal byte Parity;
internal byte StopBits;
internal byte XonChar;
internal byte XoffChar;
internal byte ErrorChar;
internal byte EofChar;
internal byte EvtChar;
internal Int16 wReserved1 ;//Reserved - Do Not Use wReserved1;
}
[StructLayout(LayoutKind.Sequential)]
private struct COMSTAT
{
internal int fBitFields;//See Comment Win32API.Txt fBitFields;
internal int cbInQue;
internal int cbOutQue;
}
private struct COMSTAT
{
public int fCtsHold;
public int fDsrHold;
public int fRlsdHold;
public int fXoffHold;
public int fXoffSent;
public int fEof;
public int fTxim;
public int fReserved;
public int cbInQue;
public int cbOutQue;
} [StructLayout(LayoutKind.Sequential)]
private struct DCB
{
//taken from c struct in platform sdk
public int DCBlength; // sizeof(DCB)
public int BaudRate; // current baud rate
// these are the c struct bit fields, bit twiddle flag to set
public int fBinary; // binary mode, no EOF check
public int fParity; // enable parity checking
public int fOutxCtsFlow; // CTS output flow control
public int fOutxDsrFlow; // DSR output flow control
public int fDtrControl; // DTR flow control type
public int fDsrSensitivity; // DSR sensitivity
public int fTXContinueOnXoff; // XOFF continues Tx
public int fOutX; // XON/XOFF out flow control
public int fInX; // XON/XOFF in flow control
public int fErrorChar; // enable error replacement
public int fNull; // enable null stripping
public int fRtsControl; // RTS flow control
public int fAbortOnError; // abort on error
public int fDummy2; // reserved
public ushort wReserved; // not currently used
public ushort XonLim; // transmit XON threshold
public ushort XoffLim; // transmit XOFF threshold
public byte ByteSize; // number of bits/byte, 4-8
public byte Parity; // 0-4=no,odd,even,,space
public byte StopBits; // 0,1,2 = 1, 1.5, 2
public char XonChar; // Tx and Rx XON character
public char XoffChar; // Tx and Rx XOFF character
public char ErrorChar; // error replacement character
public char EofChar; // end of input character
public char EvtChar; // received event character
public ushort wReserved1; // reserved; do not use
}以上这两个结构的声明在应用中根本不对,下面的声明才是正确的.但是微软MSDN上的却是和上面的声明一样的,但是微软的Win32API.txt却是按下面的说的,在我应用中下面的也是对的.
现在疑问,这上面的解释,在实际中为什么不能用,这两种解释有什么不同?
什么情况下各自适用?? [StructLayout(LayoutKind.Sequential)]
private struct DCB
{
internal int DCBlength;
internal int BaudRate;
internal int fBitFields ;//See Comments Win32API.Txt fBitFields;
internal Int16 wReserved;
internal Int16 XonLim;
internal Int16 XoffLim;
internal byte ByteSize;
internal byte Parity;
internal byte StopBits;
internal byte XonChar;
internal byte XoffChar;
internal byte ErrorChar;
internal byte EofChar;
internal byte EvtChar;
internal Int16 wReserved1 ;//Reserved - Do Not Use wReserved1;
}
[StructLayout(LayoutKind.Sequential)]
private struct COMSTAT
{
internal int fBitFields;//See Comment Win32API.Txt fBitFields;
internal int cbInQue;
internal int cbOutQue;
}
解决方案 »
- 关于SetWindowPos函数的使用问题
- 郁闷的正则问题
- 求用C#开发海康威视DS4000HC视频监控代码
- 88分求界面开发(极品列车时刻表)
- (winform)dataGrid1.select(10)选择行有问题啊!
- C#,.net如何对比两篇html代码是否一样,或比较两篇文章是否一样
- 谁有沙漏,时钟等表示时间流逝的GIF动画,请MAIL给我,酬谢!
- 一个txt图像的灰度数据。C#如何快速读取并且画出图像
- 帮我看看这个问题应该如何下手,检测当前用户是不是拥有管理员权限?
- @@@@@主表与关联的表增么在同一个DataGrid中显示@@@@@
- datagird 一列显示多条记录?
- [菜鸟问题]C#窗口切换时如何关闭原来窗口!!
http://www.codeproject.com/dotnet/DotNetComPorts.asp
我是想知道两种不同的声明有什么区别,各自适用什么情况?
这个例子中的声明和上面的第二种一样~~~
但微软MSDN上的说明却是上面的样子. 想知道为什么?