zoukankan      html  css  js  c++  java
  • 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 

  • 相关阅读:
    chrome安装vue-devtools
    企业网络设计
    nginx的安装
    Typora 的使用
    如何学习dubbo?
    关于原码反码和补码以及byte&0xff
    HttpClient以及连接池的使用
    计算机网络读书笔记:tcp面试常见问题都在里面了
    接口类是否继承自Object?
    数据挖掘会议记录
  • 原文地址:https://www.cnblogs.com/likemao/p/9438438.html
Copyright © 2011-2022 走看看