动态库与静态库
2015-12-05 18:18
218 查看
在编写程序的时候,经常会遇到好多重复或常用的部分,为了使用和维护方便,将这些部分封装成函数库。函数库可分为静态库和动态库
选择项目属性
设置项目配置类型为静态库
库文件源码
生成库文件
打开“解决方案”文件夹中(是“解决方案”文件夹,不是项目文件夹)
在资源管理器中查看生成的静态库文件
将静态库文件复制到调用的项目文件夹下
引入静态库文件,并调用文件中的方法
调用成功
PS:要按照顺序,修改了库源码,要重复2~4步
选择项目属性
设置项目配置类型为动态库
库文件源码
生成库文件
打开“解决方案”文件夹中(是“解决方案”文件夹,不是项目文件夹)
在资源管理器中查看生成的静态库文件
引入动态库态库文件,并调用文件中的方法
调用成功
由此可见,动态库适合共享,多个项目可共享一个动态库,减小程序体积。而静态库适合私有,项目间不共享静态库
静态库
编写比较简单,和普通源文件编写一样,项目属性中的配置类型设置为静态库即可,但要把库保存到调用文件的目录下,且每次修改库文件都要再生成并保存到调用文件目录下。1、项目设置:将项目设置为静态库类型
设置项目配置类型为静态库
2、代码编写:编写库文件代码,和源文件编写一样
库文件源码
3、生成库文件:将源文件生成为库文件(*.lib),生成的库文件可在解决方案文件夹中的Debug文件夹中看到
生成库文件
打开“解决方案”文件夹中(是“解决方案”文件夹,不是项目文件夹)
在资源管理器中查看生成的静态库文件
4、导入并使用库文件:
将静态库文件复制到调用的项目文件夹下
引入静态库文件,并调用文件中的方法
5、运行测试
调用成功
PS:要按照顺序,修改了库源码,要重复2~4步
动态库
源码编写和调用相对复杂,在函数定义前要加上"_declspec(dllexport)",项目属性中的配置类型设置为动态库,不必把库保存到调用文件的目录下,则每次修改库文件也不需要保存到调用文件目录下。1、项目设置:将项目设置为动态库类型
设置项目配置类型为动态库
2、代码编写:编写库文件代码,和源文件编写一样,但函数定义前要添加"_declspec(dllexport)"
库文件源码
3、生成库文件:将源文件生成为库文件(*.dll),生成的库文件可在解决方案文件夹中的Debug文件夹中看到
生成库文件
打开“解决方案”文件夹中(是“解决方案”文件夹,不是项目文件夹)
在资源管理器中查看生成的静态库文件
4、导入并使用库文件:
引入动态库态库文件,并调用文件中的方法
5、运行测试:
调用成功
由此可见,动态库适合共享,多个项目可共享一个动态库,减小程序体积。而静态库适合私有,项目间不共享静态库
相关文章推荐
- View的setOnClickListener的执行速度
- Day 28: OpenShift的Eclipse集成
- 一些有用的学习网址
- Eclips安装SVN插件
- Day 27: Restify —— 在Node.js中构建正确的REST Web服务
- Day 26: TogetherJS —— 让我们一起来编程!
- HDU 4521 小明系列问题——小明序列(线段树+树状数组)
- php 链接副本集
- Day 25: 联合Tornado、MongoDB 和 AngularJS 进行应用开发
- Python 异常处理
- 第十四周项目二 二叉树排序树中查找的路径
- Android 你应该知道的学习资源 进阶之路贵在坚持
- Day 24: 使用Yeoman自动构建Ember项目
- Python 文件I/O
- 使用AFNetworking出现报错: error=Error Domain=com.alamofire.error.serialization.response Code=-1016 "Reque
- iOS-Swift-Plist-KVC
- C++学习笔记32——构造函数
- CDOJ 1251 谕神的密码 贪心
- Day 23:使用 TimelineJS 构建精美的时间轴
- Python 模块