C++插件化技术学习 —— 基于类的插件化

本文介绍了基于类的C++插件化技术,通过多态、继承和封装简化了主程序与插件的交互。主程序只需约定一个创建对象的函数,其余功能由类对象实现。文章通过一个做衣服的案例,详细阐述了实现步骤,包括定义接口类、插件继承并实现接口、创建对象函数、获取样式名称、管理对象映射以及调用功能函数等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面所讲的基于输出函数的插件化,可以实现简单案例的插件化,但一旦需要实现的功能过多,那么主程序就需要跟插件约定大量的函数,不便于函数的管理。因此,自然联想到类的特性,多态,继承,封装。基于类的插件化可以对大量的约定函数进行管理,而主程序只需要跟插件约定一个创建类的对象函数即可,其他功能让类对象去实现即可。

还是以做衣服的案例来写一个demo。

实现步骤:

  1. 约定接口类,里面只包含纯虚函数
  2. 插件继承接口类,并实现父类中的虚函数
  3. 约定创建类对象的函数CreateObj().,以父类指针接收,在DLL加载完以后立即调用
  4. 约定获取样式的函数GetStyleName(),创建完对象后立即调用
  5. 保存样式-DLL句柄,样式-类对象指针两个map
  6. 根据指定样式获取对应的对象指针,并按顺序调用功能函数
  7. 释放dll资源

主程序实现代码:

#include <iostream>
#include <stdlib.h>
#include <stdio.h> 
#include <stdio.h>  
#include <iostream>  
#include <vector>  
#include <Windows.h>  
#include <fstream>    
#include <iterator>  
#include <string> 
#include <map>
#include "BaseClass.h"

#define MAX_PATH 1024 

void findFiles(char* lpPath,std::vector<const std::string> &fileList)  
{  
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值