编程语言
首页 > 编程语言> > C# 获得串口句柄,供 Win32 API 使用

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;
}

标签:Reflection,句柄,System,Win32,BindingFlags,串口
来源: https://www.cnblogs.com/czcbzc/p/14282768.html