VS2015静态库的使用(上)
来源:互联网 发布:苹果手机怎么抹除数据 编辑:程序博客网 时间:2024/06/11 04:21
相关视频教程下载地址http://pan.baidu.com/s/1dFnGUD7
静态库是一个包含了数据和函数的二进制的文件,其后缀名是lib。当使用静态库编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件。
1静态库的创建
首先在VS2015中创建一个“Win32项目”,之后将“应用程序类型”设置为“静态库”,如图1-1所示。
图1-1 创建静态库项目
创建静态库时,需要创建库的头文件和源文件。
1.1创建头文件
选中“解决方案资源管理器”中静态库项目的“头文件”,之后鼠标右键弹出菜单,选择“添加->新建项”,添加一个名为Win32_LIB_Test.h的头文件。并在该头文件中声明一个名为“add”的函数,该函数的作用是返回两个加数的和,参数为两个加数,返回值为和。
#pragma once
extern "C" unsignedint add(unsigned int x,unsigned int y);
其中,extern “C”表示add()函数采用C语言方式进行编译。
相关链接:
C++函数默认的调用方式为_cdecl,以上add()函数等价于
extern "C" _cdecl unsignedint add(unsigned int x,unsigned int y);
此时,编译后的add()函数名为“_add”;而如果不加extern “C”修饰,则编译后的add()函数的函数名为“?add@YAHHH@Z”。WINAPI函数的调用方式是_stdcall,如果add()函数的声明方式为
extern "C" _stdcall unsignedint add(unsigned int x,unsigned int y);
则其编译后的函数名为_add@8,其中8表示函数参数的字节数。
1.2源文件的编写
选中“解决方案资源管理器”中静态库项目的“源文件”,之后鼠标右键弹出菜单,选择“添加->新建项”,添加一个名为Win32_LIB_Test.cpp的源文件。在源文件中添加以下代码
#include "stdafx.h"
#include "Win32_LIB_Test.h"
int add(unsigned int x,unsigned int y)
{
return x +y;
}
1.3 静态库的编译
点击VS2015菜单栏中的“生成->重新生成解决方案”,重新生成静态库文件。此时在程序源代码所在的“Debug”文件夹中就会生成Win32_LIB_Test.lib静态库文件。
2 静态库的使用
在生成了静态库之后,接下来创建一个基于对话框的MFC程序,在MFC程序中调用静态库中的add()函数。
2.1 MFC程序的创建
2.1.1界面设计
新建一个“MFC应用程序”,在“应用程序类型”中选择“基于对话框”,如图2-1所示。
图2-1 创建基于对话框的MFC程序
接下来为该MFC对话框程序设计界面,如图2-2所示
图2-2 界面设计
其中,IDC_EDIT_ADD1和IDC_EDIT_ADD2两个编辑框控件用来输入两个加数,当点击了IDC_BUTTON_RESULT按键后,在IDC_EDIT_RESULT中显示这两个加数的和。
- VS2015静态库的使用(上)
- VS2015静态库的使用(下)
- VS2015静态库与动态库的使用
- uCOS-II在PC上的移植(使用VS2015)
- VS2015动态库编程之Win32动态库的使用(上)
- 关于使用VS2015静态编译
- Qt-学习笔记(1):vs2015使用qt静态库5.7
- VS2015使用小技巧 使用静态字段与非静态字段的区别
- openssl vs2015编译静态库
- VS2015编译Qt5.7.0生成支持XP的静态库
- vs2015静态编译Qt5.7.1及使用
- vs2015使用MinGW编译的动态库
- VS2015 git的使用
- 三维像素库Voxel-SDK在VS2015上的配置方法(配套硬件OPT8241)
- 机器学习库Dlib在VS2015上的安装教程
- OpenGL在vs2015上的配置(蓝宝书win10)
- 静态库和动态库在使用上的区别
- vs2015上使用github进行版本控制
- 数字信号处理
- spring 4.x + mybatis 3.x 整合
- Crazy Learning for Day 4
- 外部世界如何访问容器?
- Linux -- 以root权限安装QT5.8.0
- VS2015静态库的使用(上)
- 知乎日报
- MarkDown UML图学习
- 為什麼 Mac 的顏色比 Windows 還準確?
- 数据工作的科普总结【财哥原创】
- Web 存储机制
- 操作系统每日笔记(一):导论(一)
- Ubuntu下安装python3.4
- IntelliJ IDEA 2017.1.4 License Server