首先,打开Visual Studio,新建一个Win32的静态库项目,项目名为StaticLibrary。最后点击完成
其次,在该项目中新建两个文件:lib.h和lib.cpp。文件内容很简单,如下所示:
lib.h文件内容如下:
#ifndef LIB_H
#define LIB_H
extern "C" int add(int x,int y); //声明为C编译、连接方式的外部函数
#endif
lib.cpp文件内容如下:
#include "stdafx.h"
#include "lib.h"
int add(int x,int y)
{
return x+y;
}
上述文件完成后。进行编译即可。至此,一个静态库就编译成功!现在查看项目工程下的debug文件,可以发现生成了一个StaticLibrary.lib的文件。这个就是静态库。其中包含了add函数。
为了展示如何链接静态库,新建另一个工程,该工程为Win32控制台应用程序,项目名称写作"CallLibrary",修改其中的主文件的内容如下:
// CallLibrary.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "..\CallLibrary\lib.h"
#ifndef DEBUG
#pragma comment(lib,"..\\debug\\StaticLibrary.lib")
#else
#pragma comment(lib,"..\\StaticLibrary\\release\\StaticLibrary.lib")
#endif
int _tmain(int argc,_TCHAR* argv[])
{
int a=2,b=1;
printf("%d+%d=%d\n",a,b,add(a,b));
char *s;
scanf("%s",&s);
return 0;
}
为了能够正确执行CallLibrary程序,我们需要做如下手脚:
1、把StaticLibrary中的debug下的StaticLibrary.lib放到CallLibrary项目下的debug下。
2、把StaticLibrary中的lib.h文件放到CallLibrary工程下的CallLibrary目录下。
3、编译运行CallLibrary工程。可以得到正确运行结果: