C# 为什么我会得到;CreateFile失败:161“;当我尝试打开串行端口时?

C# 为什么我会得到;CreateFile失败:161“;当我尝试打开串行端口时?,c#,serial-port,windows-ce,zebra-printers,opennetcf,C#,Serial Port,Windows Ce,Zebra Printers,Opennetcf,我在serialPort.Open()行上得到“CreateFile失败:161”: 。 Show(string.Format(“将其转换为PrintUtils.PrintBarcode()”); 使用(SerialPort SerialPort=new SerialPort()) { Show(“使其成为PrintUtils.PrintBarcode()中的using语句”); serialPort.BaudRate=19200; serialPort.Handshake=Handshake.

我在serialPort.Open()行上得到“CreateFile失败:161”:

。
Show(string.Format(“将其转换为PrintUtils.PrintBarcode()”);
使用(SerialPort SerialPort=new SerialPort())
{
Show(“使其成为PrintUtils.PrintBarcode()中的using语句”);
serialPort.BaudRate=19200;
serialPort.Handshake=Handshake.XOnXOff;
serialPort.DataBits=8;
serialPort.Parity=奇偶校验.None;
serialPort.StopBits=停止位.1;
serialPort.PortName=“COM1”//这就是它想要的吗?
Show(“超出了PrintUtils.PrintBarcode()中的协议分配范围”;

serialPort.Open();//错误161表示
指定的路径无效。
而您得到它是因为您的端口名无效

Windows CE要求端口名(实际上所有驱动程序名)的后缀为“:”字符,因此您的代码应为:

serialPort.PortName = "COM1:"; 

引发的异常类型是什么?请查看以帮助将异常类型与原因关联起来。System.ArgumentException值不在预期范围内。我在该msdn页面上看到的是:端口名不以“COM”开头-或-不支持端口的文件类型。由于端口名称为“COM1”,这可能是第二个原因?但它是什么意思?什么是“文件类型”一个端口?谢谢,OpenNETCF!我一整天都在和它战斗,这是我看到的第一个引用,显然是奥术要求。现在我的问题是斑马装置在代码中间关闭(我打开它,光变绿了,在这些调用中间通过串口发送数据,它关闭……?!?)
serialPort.PortName = "COM1:";