2013-11-15 131 views
1

我有三个应用程序。 1. MFC(创建命名管道和读取,写入命名管道) 2.服务(读取或写入命名管道) 3. WPF应用程序将数据发送到服务以写入命名管道。C#对象+命名管道+ C++对象

流程是这样的。 首先,MFC应用程序创建命名管道,然后服务创建命名管道客户端读取和写入管道。 WPF应用程序使用服务并将数据发送到命名管道。

现在可以有人告诉我如何写一个c#对象(可能是序列化)到命名管道。 那么如何通过读回写入命名管道的c#对象来创建C++对象。 反之亦然(C++对象写入命名管道然后在服务中,我想从命名管道创建c#对象)

回答

1

命名管道是一个“低级别”的传输,它没有定义你应该/如何序列化/反序列化您的数据(它只是传输普通的“数据块”,如字节[]或字符串)

可能您正在寻找的是序列化库,它允许您序列化C#中的对象并反序列化它在C++中,反之亦然。

下面是相关的问题: Serialize in C++ then deserialize in C#?

因此,这里是如何可以去:你在序列C#的对象转换成字节数组/串,然后写一个数组/串命名管道;然后从C++应用程序中的命名管道读取序列化数据块,并将其反序列化为C++对象。反之亦然。

上面的帖子推荐google Protocol Buffers用于序列化/反序列化的库。