静态链接库
大约 2 分钟cpp
概述
创建解决方案

如果是 vs2008 创建的静态库项目,如下图,不要在 IDE 创建的默认文件中编写自己的代码,要手动创建一个和项目同名的文件 LibTest.cpp 编写代码

案例
通过上面方法创建一个静态库的解决方案,本案例使用 vs2017 所以 IDE 默认创建了 LibTest.cpp 文件用于编写自定义的代码,不需要手动创建该文件了。 在项目 “头文件” 目录下创建文件 Inc.h,代码如下
#pragma once
// 上面代码防止头文件被多次引用
// 下面代码的 extern "C" 是为了防止编译后函数名称被修改
// 后面 int 开始是真正的函数签名
extern "C" int add(int a, int b);
然后在文件 LibTest.cpp 中编写自定义的代码,下面代码中还演示了如何使用 string,其中函数 int add 是为了实现上面头文件声明的函数,并且之后调用者会调用该函数
// LibTest.cpp : 定义静态库的函数。
#include "pch.h"
#include "framework.h"
#include "Inc.h"
#include "string"
using namespace std;
// TODO: 这是一个库函数示例
void fnLibTest()
{
}
int add(int a, int b) {
return (a+b);
}
string getVersion() {
return "我是版本号";
}
调用方法
在上面静态库解决方案下同 LibTest 项目创建兄弟项目用于测试静态库,命名调用项目为 LibCall,创建控制台应用程序作为调用项目,入口函数文件的所有代码如下
#include <iostream>
#include "../LibTest/Inc.h"
#pragma comment(lib, "../debug/LibTest.lib")
int main()
{
int iRet = add(1,3);
printf_s("1+3=%d\r\n", iRet);
system("pause");
}
注意上面包含头文件 Inc.h 和引用静态库 LibTest.lib 的路径有点诡异,见下图解释:

