我有三个申请。 1. MFC(创建命名管道和读取,写入命名管道) 2.服务(读取或写入命名管道) 3. WPF应用程序将数据发送到服务以写入命名管道。
Flow就是这样的。 首先,MFC应用程序创建命名管道,然后服务创建命名管道客户端以读取和写入管道。 WPF应用程序使用服务并将数据发送到命名管道。
现在有人可以告诉我如何将C#对象(可能是序列化)写入命名管道。 那么我如何通过读回写入命名管道的c#对象来创建C ++对象。 反之亦然(c ++对象写入命名管道然后在服务中我想从命名管道创建c#对象)
答案 0 :(得分:1)
命名管道是"低级"传输,它没有定义你应该/可以序列化/反序列化你的数据(它只是传输普通的"数据块",像byte []或字符串)
您正在寻找的是一个序列化库,它允许您在C#中序列化对象并在C ++中反序列化,反之亦然。
以下是相关问题: Serialize in C++ then deserialize in C#?
以下是它的实现方法:将C#中的对象序列化为字节数组/字符串,然后将该数组/字符串写入命名管道;然后从C ++应用程序中的命名管道读取序列化数据块,并将其反序列化为C ++对象。反之亦然。
以上帖子建议使用google Protocol Buffers库进行序列化/反序列化。