C++插件化技术学习一——基于函数输出的插件化

最近因工作需要,对C++插件化技术做了一些初步了解,在学习的过程中,发现直接阅读那些比较成熟的插件化框架,比较困难,因为它里面考虑的东西太多,而且并不是所有的功能你都需要。我的目的是能够了解C++插件化框架的基本原理,并且能根据自己的需求来使用一些插件化的思想。因此,我从最基本的内容入手,并记录下来。

这是我的第一篇博客,希望看到的朋友能多提意见,多多交流。

首先,插件化的本质是在不修改程序主体的情况下,对软件的功能进行加强。当插件的接口被公开时,任何人都可以制作插件来解决操作上的不便或增加一些功能。这是网上比较普遍的一种解释,用我自己的理解来说,就是主程序知道自己要干什么,并且制定了类或接口去干这件事,至少谁来干,怎么干这件事都与主程序无关,而插件就用负责来干这件事的,怎么干有它自己决定,因此主程序和插件在功能上是分离的。

插件化目前有三种基本的实现方法

  1. 基于普通函数输出的DLL方式
  2. 基于类的多态性
  3. 基于COM组件化的方法

今天主要以一个案例来说明一下第一种方法。

假如主程序现在想做一件衣服,若用第一种方式实现的话,那么她需要知道做衣服的三个步骤:打版,裁剪,缝合。所以,在主程序中她会依次调用这三个功能函数。

但是,主程序不知道怎么去实施这个步骤,它知道某个文件下可能有dll知道怎么实现,于是她就是去遍历这个文件夹,把里面的dll全部加载到自己的进程中,然后根据自己的需要,比如她想做一件秋装,或是一件冬装,去找到想要的那个DLL,每个DLL都会实现一种做衣服的方式,它里面会包含一个约定函数,当主程序把这个DLL加载进来的时候,就会告诉主程序这个dll是做什么样的衣服,最后在匹配的DLL里面找她所需要的三个接口。

主程序的代码描述如下:

#include <iostream>
#include <stdlib.h>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值