csdn破解(csdn破解版吾爱)
plg 格式插件 破解
此种类型的软件采用的插件协议依赖于操作系统提供的动态连接功能,一般要求在库中导出一个函数,通过调用此函数返回一个结构体的指针,而此结构体的成员大多是一些函数指针,通过指针对这些函数进行调用可以得到与此插件相关的信息或实现此插件提供的功能。 比如定义一个结构体typedef struct InterfacePlugin{ const char* (*pWhoAreYou)(); int (*pDoYourJob)();}InterfacePlugin, *pInterfacePlugin; 再定义一个函数 PInterfacePlugin GetInterfacePlugin(); 主体程序首先加载动态连接库,然后在其中寻找名为GetInterfacePlugin的函数的入口地址,如果找到则调用它并得到返回值ret,通过这个返回值,可以进一步调用ret-pWhoAreYou得到与此插件相关的信息,或调用ret-pDoYourJod来让此插件实现它的功能。 这种类型的插件接口无论对于主体程序还是插件程序,都非常的简单,易于理解,易于实现。 这种类型的典型软件就是Winamp。 Winamp提供了解码、播放、DSP、General、VIS、ML等多个插件接口,每一个接口都是一个这样的简单协议。 因此大家不难发现,接口虽然简单,但它能提供的扩展性却非常强大,Winamp插件的丰富多彩和Winamp的流行足以证明这一点。 2使用动态连接库,但提供复杂的导出函数,导出函数返回的接口结构体一般不独立,而是和其他众多插件模块的接口有着各种关联。 这种类型的插件实现的接口一般从某个接口体系中继承而来,主体程序还会提供所谓的插件管理器。 因此,此种类型的某一个插件可能并不复杂,但它总是在某个继承体系中,整个体系的结构和内部关系总是复杂得多。 这种类型的插件接口可以提供非常强大的数据交互过程,适用于数据处理过程很复杂的场合。 这种类型的典型软件有PhotoShop。 如果你去看一看PhotoShop的插件接口手册,刚上手的话,估计把各个接口的关系理解清楚就要费半天劲,再去写个实际的插件拿去用就得再费些功夫了。 本文来自CSDN博客,转载请标明出处: