C++ Windows:C++;:从文件重定向到串行端口(输入)

C++ Windows:C++;:从文件重定向到串行端口(输入),c++,windows,redirect,serial-port,C++,Windows,Redirect,Serial Port,我继承了一些相当旧的软件,它连接到串行端口,格式化传入的数据,并显示和保存数据。该软件使用旧的Borland编译器(C++Builder 5.0)编写,使用CreateFile打开端口,然后使用SetupComm打开comm参数 有人要求我添加新功能:启用录制会话,并将其作为串行端口进行重放 我正在研究几种可能的解决方案,最简单、最快速的解决方案包括第二个串行端口和一根零调制解调器电缆。这并不完全是他们的想法,但它确实解决了问题。但是,假设我没有这个选项。有没有办法将comm端口重定向到文件,以

我继承了一些相当旧的软件,它连接到串行端口,格式化传入的数据,并显示和保存数据。该软件使用旧的Borland编译器(C++Builder 5.0)编写,使用CreateFile打开端口,然后使用SetupComm打开comm参数

有人要求我添加新功能:启用录制会话,并将其作为串行端口进行重放

我正在研究几种可能的解决方案,最简单、最快速的解决方案包括第二个串行端口和一根零调制解调器电缆。这并不完全是他们的想法,但它确实解决了问题。但是,假设我没有这个选项。有没有办法将comm端口重定向到文件,以便在打开“com端口”时打开该文件并从中读取?或者是否有一种简单的并行方式来打开文件(例如,对CreateFile的相同调用),并绕过对SetupComm的调用,以便在需要时输入来自文件


因为我有简单的硬件解决方案,我不想花几个小时重写代码,但如果有一个简单的方法,我想知道。

我会以某种方式将声誉点奖励给Eugen Rieck,这是他的建议。我这样做的方式是使用一个名为com0com的包,它是一个开源虚拟com端口。我编写了一个例程,它发送到一个虚拟com端口,将原始软件的com端口连接到与该端口配对的另一个端口,功能就在那里。

如果您可以访问源代码,您不能将调用更改为
CreateFile
以打开所需的文件而不是串行端口吗?有大量虚拟串行端口驱动程序,允许您将端口设置为从文件读取,或将一个端口设置为从第二个虚拟端口读取(软件中的nullmodem电缆)eznme——比这更复杂——这是我的出发点。问题是预期的I/O类型,以及对未发生的串行事件的回调,等等。Eugen Rieck——这是我正在寻找的类型,但还没有找到一个我能够工作的类型。你有没有使用过一款可以让它干净地工作?我在billproduction.com上试过一个,当我试图将它设置为从文件到串行端口的输入和输出时,它阻止了我的应用程序使用该端口。我在sourceforge上简要地查看了com0com,但还没有开始尝试。快速浏览自述文件并没有说明它可以从一个文件中工作。Eugen-转到com0com,下载了它,现在有了一个使用它的解决方案。就其本身而言,它并不“从文件工作”,但在了解了它的工作方式后,很容易让原始程序无缝连接到一个虚拟端口,添加一些代码将文件发送到另一个端口,并将两个端口配对,以便在没有实际硬件的情况下从另一个端口接收一个。工作完美。