我有一个C#程序(称之为A),它拍摄照片并将其转换为2d数组值。我还有一个c ++(称之为B)程序,它使用矩阵类型作为输入。我想要做的是用B编写的代码调用A.我不知道如何为A指定输入(不知道是否可能以任何方式)。我找到的唯一解决方案是有一个目录,其中我有一张照片和一个首先打开的文件,当它被调用时被A打开并被A关闭,而B再次打开并阅读它。 问题是:有没有办法为从另一个程序调用的程序提供输入?
答案 0 :(得分:0)
最简单的方法是使用管道。在终端,它看起来像这样:
programA < image | programB
答案 1 :(得分:0)
有许多方法可以将输入从一个程序传递到另一个程序。
创建一个共享内存区域并将数据存储在那里(例如在Posix上使用boost::shared_memory
或shm_open
,或在Windows上使用CreateFileMapping
。
将数据写入一个程序中的stdout,从另一个程序中的stdin读取并将两个程序一起管道。
根据用途,所有这些都可以是合适的,但我会坚持编写一个文件来开始。它使单独测试和调试这两个程序变得更加容易。我没有使用固定的目录和文件名,而是写入文件,然后在命令行上使用文件名调用B.