反序列化插件中定义的类
Deserializing a class defined in a plugin
在我的进程中,我加载插件,从中获取我在其余过程中使用的对象。
这个类继承自MyInterface
所以序列化它没什么大不了的。
我只是在其中实现了一个virtual const unsigned char* Serialize()
方法。我无法弄清楚的是我如何反序列化它,因为反序列化方法应该是静态的,我不能做同样的事情。
我必须从插件 DLL 公开反序列化方法还是有更好的方法?
是否需要
在 DLL 的导出中公开 Deserialize
函数取决于应用程序的设计。 如果需要客户端调用 Deserialize
函数,则需要公开它。
就其工作原理而言,Deserialize
需要具有与工厂方法相同的基本体系结构。 序列化数据需要指示它表示的对象类型,以及对象中的所有好东西。 否则,调用Deserialize
的人需要知道要反序列化的对象类型,但听起来这在您的方案中是不可能的或不可取的。 如果将对象类型存储为序列化数据的一部分,则可以在 Deserialize
方法中对其进行switch
,并构造正确的对象类型。
相关文章:
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- 如何使用MSVC 2019创建和使用Qt 5.14.0自定义小工具插件
- 在 linux 原因上运行自定义原型插件
- 使用自定义 nodejs 插件时的"The specified module could not be found"
- 如何删除Qt设计器中自定义插件的QString属性的"translatable"复选框?
- 自定义插件的Maya图标
- 错误访问另一个插件中的类(错误:未定义的引用)
- 凉亭ROS插件出错:建筑x86_64的未定义符号
- Qt自定义插件无法加载 - "Shared Library Not Found"
- 带有C++插件的节点应用程序在运行时抱怨未定义的符号
- 为KRunner定义插件时未定义vtable
- 处理协议插件中的自定义选项
- Kurento自定义插件:如何将事件异步发送到java服务器
- 反序列化插件中定义的类
- Qt设计器无法加载我的自定义小部件插件
- Qt无法加载插件:未定义的符号iPlugin::staticMetaObject
- Node.js插件中未定义的符号
- C++组插件如何与自定义比较器配合使用
- Clang/GCC插件,用于解释自定义的c++11属性
- Qt应用程序无法加载自定义插件调试库