总结一波这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