GetLastError()= 2

时间:2013-08-03 12:14:15

标签: visual-c++ serial-port

我是C ++中使用串口的新手。我已经找到了很多这样的例子,其中一个是在 Configuring a Communications Resource

但是,根据System Error Codes,我几乎已经得到错误号2,这意味着ERROR_FILE_NOT_FOUND,但我无法理解。我正在使用visual C ++ 2010 Express。毫无疑问,问题出现在OPEN_EXISTING命令中:

TCHAR *pcCommPort = TEXT("COM1"); //  Most systems have a COM1 port
hCom = CreateFile( pcCommPort,
                  GENERIC_READ | GENERIC_WRITE,
                  0,      //  must be opened with exclusive-access
                  NULL,   //  default security attributes
                  OPEN_EXISTING, //  must use OPEN_EXISTING
                  0,      //  not overlapped I/O
                  NULL ); //  hTemplate must be NULL for comm devices

但是为什么以及什么是闷热?

1 个答案:

答案 0 :(得分:1)

   //  Most systems have a COM1 port
那是20年前的事。十多年前,主板制造商已经停止在主板上安装COM端口,USB完全取代它作为与设备通信的主导和优越方式。

如果购买了带有真正串行端口的PCI板,则机器中只有一个COM1端口。今天更常见的情况是蓝牙或USB驱动程序模拟串行端口。它们的驱动程序的工作方式没有真正的标准,但它们通常开始在COM3或COM5上对模拟端口进行编号。您还应该为此类端口提供本机设备名称,以避免驱动程序无法模拟端口的DOS命名空间名称。例如,使用"\\\\.\\COM3"

使用“控制面板+设备管理器”查找正确的端口号。