【发布时间】:2012-03-05 11:56:27
【问题描述】:
我有两个应用程序,一个用 C 编写,另一个用 C# 编写,它们通过控制台字符串消息进行通信。他们都等到对方发送字符串消息。
现在我希望 C 应用程序在某个时刻通过相同的控制台 I/O“通道”发送二进制格式的图像,并且 C# 应用程序接收它并将其用作要显示的图像。我知道这是可能的,请参阅:C/C++: is it possible to pass binary data through the console?。
我可以访问这两个应用程序的源代码。我知道 C 应用程序代码将图像写入磁盘的位置。 C#应用通过这段代码获取C应用输出:
process.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived); //void
p_OutputDataReceived(object sender, DataReceivedEventArgs e) //e.Data.
如何编写二进制图像传输的 C 和 C# 部分?谢谢。
【问题讨论】:
-
@C.Evenhuis 我想在 C 和 C# 方面实现上述数据传输,你能发布一些示例代码吗?
-
我没有,通常在这里发帖的人开发自己的软件并在遇到特定问题或疑问时提出问题。
-
@C.Evenhuis 我自己开发了我的应用程序,这是我遇到的具体问题。如果您没有代码示例,请至少提供一些提示。将不胜感激。
-
您链接到的问题中的答案包含将
stdin设置为二进制模式的代码 - 并提到您也可以为stdout执行此操作。您已经提到 C# 应用程序如何接收数据。下一步将写入stdout并在C# 中的p_OutputDataReceived处理程序中放置一个断点,对吧? -
如果你不需要使用控制台,除了stdin/stdout还有其他的IPC方法,比如socket或者内存映射文件。
标签: c# c image console binary-data