环境:vs2010 或 vs2013
第一部分:生成静态库,即.lib文件
第一步:新建一个静态库(static library)项目
打开VS,文件->新建->项目,选择“Win32项目”(备注:其实这里选择“Win32控制台应用程序”也是一样的,因为下一步才是具体的选择你的项目是什么类型,即使退一万步说你现在选错了,后面仍然可以更改,这个后面补充说明),
如下图所示:
第二步:编写项目内容
首先在头文件下添加一个头文件static.h,在源文件下添加一个源文件static.cpp.
头文件static.h的内容如下:
#ifndef STATIC_H
#define STATIC_H
extern "C" int sum(const int x, const int y);
extern "C" int sub(const int x, const int y);
#endif
源文件static.cpp的内容如下:
#include "static.h"
int sum(const int x, const int y)
{
return x + y;
}
int sub(const int x, const int y)
{
return x - y;
}
第三步:生成.lib文件
在菜单栏选择“生成”->“生成解决方案”就可以了。然后打开工程文件夹,在Debug目录下(编译选择的是默认的Debug和Win32)就可以看到一个和项目名称TestGenLib相同的lib文件:
这样供给别人调用的lib文件就生成好了,下面讲如何调用这个静态库文件。
第四步:把.h文件和.lib文件放在专门的文件夹中
比如我是放在这样的文件夹中:
static.h头文件拷贝到了D:\Visual Studio 2013\Projects\TestCallLib\include
TestGenLib.lib库文件拷贝到了D:\Visual Studio 2013\Projects\TestCallLib\lib
这个放在什么目录完全自己决定,只要名字起的有意义就好了,一般头文件都是用一个include文件夹放在一起,库文件都是用一个lib文件夹放在一起。
第二部分:调用静态库
第一步:新建一个Win32控制台应用程序
之所以选择控制台,是因为可以cmd窗口输出查看调用效果啊。新建好项目之后,不用添加什么新的头文件和源文件,有一个默认的带主函数_tmain()的cpp文件,待会儿在这个里面编辑代码就好了:
第二步:调用lib库需要的各种配置
首先右击项目,选择最后一个“属性”,打开属性页面,选择“VC++目录”,配置这里的包含目录和库目录。从名字中你也能看出来了,包含目录自然是指#include的那些文件的目录,这里就是我们之前生成的头文件,而库目录自然就是之前生成的.lib文件了。
“包含目录”这里添加你之前存放static.h头文件的那个目录路径,我这里就是:
D:\Visual Studio 2013\Projects\TestCallLib\include
“库目录”这里添加你之前存放TestGenLib.lib文件的那个目录路径,我的就是:
D:\Visual Studio 2013\Projects\TestCallLib\lib
如下图所示:
然后还是在这个属性页下,选择“链接器”->“输入”,在“附加依赖项”这里添加要调用的lib文件的名字:TestGenLib.lib
这样需要的配置就大功告成了。
在cpp文件中包含相应的头文件#include "static.h",测试代码如下:
#include "stdafx.h"
#include "static.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << sum(3, 5) << std::endl;
std::cout << sub(4, 1) << std::endl;
system("pause");
return 0;
}
正确输出了结果:
第三部分:补充
之前提到了即使选错了项目,也可以在项目建立之后改变,具体如下:
右键项目,打开属性页,选择“配置属性”->“常规”,看到“项目默认值”下面有个“配置类型”了吗,在里面进行修改就好了: