好吧,所以我有一个需要 IPC 的应用程序...我认为命名管道是可行的方法,因为它们非常易于使用。
无论如何,我有一个关于如何使用命名管道处理动态内存的问题。
假设我有这样的课程:
class MyTestClass {
public:
MyTestClass() { _data = new int(4); }
int GetData() { return *_data; }
int GetData2() { return _data2; }
private:
int* _data;
int _data2;
};
现在,当我创建一个充满MyTestClass
对象的缓冲区然后通过管道发送它们时,我显然会在目标进程中丢失 _data 并获得垃圾。我应该使用一些策略吗?我可以在简单的情况下使用值类型,但对于许多复杂的类,我需要使用某种动态内存并且我喜欢指针。
或者,我应该只考虑使用共享内存吗?谢谢