dll 恐怖的代码调整

时间:2022-02-11 20:31:18

总结一波这998的不得不提的调整代码的心得。

调整代码的背景:现有wps美化代码分散在各个插件里面,导致每次修改一小部分代码,都要全新编译,并且只能跟版本发,所以决定将wps的美化代码整合成一个插件dll,通过接口的方式(纯虚函数),给内核提供方法,这样随时都可以更新dll

学习到的知识点:

1、static  定义的函数是文件作用域,别的地方无法调用

2、全局变量在程序块运行前初始化

3、静态链接是将lib中的指令都被直接包含在最终生成的EXE文件中了,所以静态链接之后就可以直接删除lib

4、动态链接分为加载时动态链接(有lib文件的dll,lib在编译期就连接到应用程序中,之后也可以删除,主要内容是DLL导出的函数的名称和位置,用vs command输入命令dumpbin /all xx.lib 就可以看到)和运行时动态链接(无lib),动态链接的时候会调用一个dllmain函数(可有可无)

5、override,是在基类(直接基类或者间接基类)有虚函数之后,覆盖用的

6、单例的类,它的构造函数最好申明成private

7、可以通过define IN,define OUT,来在函数参数里加上,这样更容易理解函数参数

8、二重指针直接转化的话,直接通过class1** p1 ; class2**p2 = (class2**)p1;通过小括号显示转换

静态链接编译时需要.h 和.lib,运行时都不需要

加载时动态链接,编译时需要 .h / .lib /.dll  运行时只需要dll

运行时动态链接编译和运行需要 .dll

可看

https://blog.csdn.net/ojshilu/article/details/12954957

相关链接:

https://blog.csdn.net/lightlater/article/details/16851181

https://www.cnblogs.com/tracylee/archive/2012/10/15/2723816.html

https://blog.csdn.net/u011391629/article/details/53636436