相关视频教程下载地址http://pan.baidu.com/s/1dFnGUD7
静态库是一个包含了数据和函数的二进制的文件,其后缀名是lib。当使用静态库编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件。
首先在VS2015中创建一个“Win32项目”,之后将“应用程序类型”设置为“静态库”,如图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表示函数参数的字节数。
选中“解决方案资源管理器”中静态库项目的“源文件”,之后鼠标右键弹出菜单,选择“添加->新建项”,添加一个名为Win32_LIB_Test.cpp的源文件。在源文件中添加以下代码
#include "stdafx.h"
#include "Win32_LIB_Test.h"
int add(unsigned int x,unsigned int y)
{
return x +y;
}
点击VS2015菜单栏中的“生成->重新生成解决方案”,重新生成静态库文件。此时在程序源代码所在的“Debug”文件夹中就会生成Win32_LIB_Test.lib静态库文件。
在生成了静态库之后,接下来创建一个基于对话框的MFC程序,在MFC程序中调用静态库中的add()函数。
新建一个“MFC应用程序”,在“应用程序类型”中选择“基于对话框”,如图2-1所示。
图2-1 创建基于对话框的MFC程序
接下来为该MFC对话框程序设计界面,如图2-2所示
图2-2 界面设计
其中,IDC_EDIT_ADD1和IDC_EDIT_ADD2两个编辑框控件用来输入两个加数,当点击了IDC_BUTTON_RESULT按键后,在IDC_EDIT_RESULT中显示这两个加数的和。
联系客服