[英]Serialization in C++ and Deserialization in C# and vice versa for named pipe
我有兩個進程(.exe),一個在 C++ 中實現,另一個在 C# 中實現。 我想要的是兩個過程之間的通信。 為此,我選擇了“命名管道”方法。 我面臨的問題是將 class object 從一個應用程序傳遞到另一個應用程序。 我可以輕松發送字符串數據,但我不知道如何將 class object 從應用程序發送到另一個應用程序。 我的 class 結構如下:
enum information
{
TITLE,
STATUS,
DEBUG,
INFO,
OTHER
};
class CInformation
{
private:
information _info;
string _text;
public:
void setInformation(information info, string text) { _info = info; _text = text; }
inline information GetInfo() { return _info; }
inline string GetText() { return _text; }
};
so how to Serialize this class in C++, send it over named pipe and Deserialize it in C# and vice versa also for the same class. 請給我一個例子。 我對任何其他解決方案也持開放態度,也可以在兩個過程之間進行雙向通信。
正如您選擇命名管道一樣,您現在必須選擇一種序列化方法/約定。 如果您的 C++ 代碼可以通過 CLI 訪問 .Net,那么您將有一個良好的開端,因為您可以確保在兩端應用相同的規則。 否則,您可以選擇 JSON、XML、簡單的文本字符串甚至二進制。 您可能有做出此選擇的技術原因(數據和結構與緊湊性等),或者它可能由工具/框架的可用性驅動(可能引導您轉向 JSON 或 XML)為您進行(反)序列化。 請注意,即使使用簡單的文本字符串,您也必須確保雙方使用相同的編碼(UTF-8、ASCII、...)。
請注意,C++ 和 C# 不做任何“語言保證”以任何“兼容”方式實現類,這取決於 map 兩個視圖彼此和/或 JSON 序列化類的示例結構布局。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.