• dll 恐怖的代码调整


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

  • 相关阅读:
    文章块引用模版
    悬停工具提示
    各个知识点
    Github Fork 缎带.html
    css重置样式
    暗灰色的圆形按钮.html
    css中的居中的方法
    display:table的几个用法 块级子元素垂直居中
    <meta>标签中http-equiv属性的属性值X-UA-Compatible详解
    jQuery难学是因为什么?
  • 原文地址:https://www.cnblogs.com/likemao/p/9438438.html
Copyright © 2020-2023  润新知