• 动态库与静态库


      在编写程序的时候,经常会遇到好多重复或常用的部分,为了使用和维护方便,将这些部分封装成函数库。函数库可分为静态库和动态库

    静态库

      编写比较简单,和普通源文件编写一样,项目属性中的配置类型设置为静态库即可,但要把库保存到调用文件的目录下,且每次修改库文件都要再生成并保存到调用文件目录下。

      1、项目设置:将项目设置为静态库类型

    选择项目属性

    设置项目配置类型为静态库

      2、代码编写:编写库文件代码,和源文件编写一样

    库文件源码

      3、生成库文件:将源文件生成为库文件(*.lib),生成的库文件可在解决方案文件夹中的Debug文件夹中看到

    生成库文件

    打开“解决方案”文件夹中(是“解决方案”文件夹,不是项目文件夹)

    在资源管理器中查看生成的静态库文件

      4、导入并使用库文件:

      将静态库文件复制到调用的项目文件夹下

    引入静态库文件,并调用文件中的方法

      5、运行测试

    调用成功

    PS:要按照顺序,修改了库源码,要重复2~4步

    动态库

      源码编写和调用相对复杂,在函数定义前要加上"_declspec(dllexport)",项目属性中的配置类型设置为动态库,不必把库保存到调用文件的目录下,则每次修改库文件也不需要保存到调用文件目录下。 

      1、项目设置:将项目设置为动态库类型

    选择项目属性

    设置项目配置类型为动态库

      2、代码编写:编写库文件代码,和源文件编写一样,但函数定义前要添加"_declspec(dllexport)"

    库文件源码

      3、生成库文件:将源文件生成为库文件(*.dll),生成的库文件可在解决方案文件夹中的Debug文件夹中看到

    生成库文件

    打开“解决方案”文件夹中(是“解决方案”文件夹,不是项目文件夹)

    在资源管理器中查看生成的静态库文件

      4、导入并使用库文件:

    引入动态库态库文件,并调用文件中的方法

      5、运行测试:

    调用成功

     

      由此可见,动态库适合共享,多个项目可共享一个动态库,减小程序体积。而静态库适合私有,项目间不共享静态库

  • 相关阅读:
    android AudioManager AUDIOFOCUS
    uboot环境变量实现分析
    观察者模式总结
    【BZOJ3270】博物馆 概率DP 高斯消元
    从零開始学android<TabHost标签组件.二十九.>
    怎样在Web项目中的service业务层获取项目根路劲
    TexturePacker 算法
    [leetCode 75] Sort Colors
    无人车可能导致器官捐献者短缺以及吸烟率下降:4星|《无人驾驶,十万亿美元的大饼怎么分?》
    如何寻找颠覆式创新的机会,《创新者的窘境》作者二十年磨一剑:4星|《与运气竞争》
  • 原文地址:https://www.cnblogs.com/HuangWj/p/5012120.html
Copyright © 2020-2023  润新知