【发布时间】:2019-01-25 09:52:48
【问题描述】:
我的 C++ 应用程序的当前工作如下:
1.它涉及启动另一个进程并使用windows共享内存在两个进程之间进行通信。
2.数据在一个进程中序列化,在另一个进程中反序列化。但是,数据类型也可能会根据用户输入而有所不同,因此类型也会被序列化,以便反序列化器可以正确解释数据。
现在,我打算使用平面缓冲区来序列化和反序列化数据(因为它的明显优势 - 随机访问和向后兼容性)。
但是,要做到这一点,我需要在某些方面澄清并希望对它们有所帮助。
根据数据类型,我可以通过编程方式生成架构并将其提供给 flatc.exe 以生成文件。但是,我没有使用 flatc.exe,而是考虑构建 flatc.dll(来自开源代码)并使用它来保持交互更简单。这听起来更明智吗?
其次,我更不确定的是以下内容。我将创建一个模式并在应用程序运行时调用“平面缓冲区编译器”。它将生成一些 C++ 文件。现在,据我所知,我需要以某种方式构建这些文件,并且应该将构建的二进制文件插入序列化器和反序列化器中以序列化和反序列化实际数据——而这一切都是在应用程序运行时进行的。我如何实现这一切?
这个问题都源于我的应用程序没有任何固定架构。当模式是可变的时,使用平面缓冲区的一般方法是什么?
我希望我清楚我想问什么。如果没有,请告诉我。我很乐意提供更多细节。提前感谢您的回答。
【问题讨论】:
标签: c++ serialization deserialization ipc flatbuffers