2013-11-15 88 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用於序列化/反序列化的庫。