C# 获得串口句柄,供 Win32 API 使用

C# 获得串口句柄,供 Win32 API 使用

废话不表,直接看代码

public static IntPtr GetCommHandle(System.IO.Ports.SerialPort sp)

{//获得串口句柄,供 Win32 API 使用
IntPtr hComm = IntPtr.Zero;
if(sp != null)
{
object stream = typeof(System.IO.Ports.SerialPort).GetField("internalSerialStream", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(sp);
var handle = (Microsoft.Win32.SafeHandles.SafeFileHandle)stream.GetType().GetField("_handle", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(stream);
hComm = handle.DangerousGetHandle();
}
return hComm;
}

上一篇:【转】.Net负载均衡使用StateServer进行Session共享


下一篇:剖析一款实现IOC的.NET框架