• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C\C++动态链接库代理类设计

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

编写 C\C++ 程序时经常会使用到按标准C的方式封装好的动态链接库,用起来还比较麻烦,先要加载,后导出函数地址。

我在公司工作的时候遇上的情况:公司使用自己封装的动态链接库,每一个开发人员自己写了一套加载和导出链接库函数的类来做二次封装,到我来维护这个模块的时候,已经是乱七八糟。经常为该动态链接库加入一点点新的内容,都要同时维护多个版本的二次封装的类,不仅仅修改的时候容易遗漏,而且容易忘记哪里还有需要修改。最终忍无可忍,只有重构,统一接口。

1.使用设计模式中的单件代理模式

 1//例子
 2class DllProxy
 3

 

2.这样设计拥有加载和导出动态链接库的类,可以使得程序在运行的时候就先加载动态链接库(加载的时间比main函数运行的时间还要提前),并且当程序退出的时候,该类也会自动释放加载的动态链接库。最重要的是,使用这样的Proxy类,只要类似于这样编写代码: DllProxy::函数名称(参数),就像直接使用DLL的函数一样。

3.这样设计的好处是使用这个动态链接库的开发人员不需要关注加载和导出的繁琐过程。所以比较推荐的做法是:开发这个动态链接库的开发人员编写完动态链接库后,给出一份动态链接库代理类给使用这个动态链接库的开发人员用即可,既节省了后期使用动态链接库的开发人员的开发时间,也为以后维护的时候带来便利。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#-string,StringBuilder和Regex类的讲解发布时间:2022-07-14
下一篇:
巧用FileShare解决C#读写文件时文件正由另一进程使用的bug发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap