-1

在我的过程中,我加载插件,从中获取我在其余过程中使用的对象。
这个类继承自MyInterface所以序列化它不是什么大问题。
我只是virtual const unsigned char* Serialize()在其中实现一个方法。我不知道如何反序列化它,因为反序列化方法应该是静态的,我不能这样做。
我必须从插件 DLL 公开反序列化方法还是有更好的方法?

4

1 回答 1

0

是否需要Deserialize在 DLL 的导出中公开函数取决于应用程序的设计。如果您需要客户端调用该Deserialize函数,则需要将其公开。

就其工作方式而言,需要具有与工厂方法Deserialize相同的基本架构。除了对象中的所有好东西之外,序列化的数据还需要指示它所代表的对象类型。否则,调用者需要知道要反序列化哪种对象,但这听起来在您的场景中是不可能或不可取的。如果您将对象类型存储为序列化数据的一部分,那么您可以在您的方法中使用它,并构造正确类型的对象。DeserializeswitchDeserialize

于 2012-06-04T19:52:35.790 回答