在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
编写 C\C++ 程序时经常会使用到按标准C的方式封装好的动态链接库,用起来还比较麻烦,先要加载,后导出函数地址。 我在公司工作的时候遇上的情况:公司使用自己封装的动态链接库,每一个开发人员自己写了一套加载和导出链接库函数的类来做二次封装,到我来维护这个模块的时候,已经是乱七八糟。经常为该动态链接库加入一点点新的内容,都要同时维护多个版本的二次封装的类,不仅仅修改的时候容易遗漏,而且容易忘记哪里还有需要修改。最终忍无可忍,只有重构,统一接口。 1.使用设计模式中的单件和代理模式
1//例子
2class DllProxy 3
2.这样设计拥有加载和导出动态链接库的类,可以使得程序在运行的时候就先加载动态链接库(加载的时间比main函数运行的时间还要提前),并且当程序退出的时候,该类也会自动释放加载的动态链接库。最重要的是,使用这样的Proxy类,只要类似于这样编写代码: DllProxy::函数名称(参数),就像直接使用DLL的函数一样。 3.这样设计的好处是使用这个动态链接库的开发人员不需要关注加载和导出的繁琐过程。所以比较推荐的做法是:开发这个动态链接库的开发人员编写完动态链接库后,给出一份动态链接库代理类给使用这个动态链接库的开发人员用即可,既节省了后期使用动态链接库的开发人员的开发时间,也为以后维护的时候带来便利。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论