C动态库的扩展

案例背景:一般的企业信息系统都有成熟的框架,可以由C语言编写,也可以由C++编写。软件的框架一般不会发生变化,能自由地集成第三方的产品;

案例需要:在socket通信中,完成数据加密功能。有n个第三方厂商的加密产品供你选择,如何实现动态库和第三方产品的解耦和?

                  要求能够:1.能够支持多个第三方产品的入围;2.企业的信息系统框架不能轻易发生改变。

提醒:C++通过面向抽象类编程已经很好地解决了(C++中的多态,C++编译器通过提前布局vptr指针,虚函数表,完成动态的迟邦定)。在C中有应当如何解决?

 

解决思路: 

对于C动态库的扩展,可通过以下5个步骤进行:

1.在动态库的内部,需要提前定义好一套接口(函数指针类型的定义),搭建dll中的函数调用的模型框架;

2.在动态库的外部发布你的一套接口协议(发布你的.h文件);

3.厂商根据你的.h文件实现函数原型(编写子任务);

4.把厂商实现的函数的入口地址 注入 到你的函数调用模型框架中(main函数中完成);

5.在框架中 回调 厂商的函数实现。

 

转载于:https://www.cnblogs.com/jswu-ustc/p/8412690.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值