创建静态库
- 在解决方案中添加新项目,选择静态库,命名为
demoStaticLib
。
- 在静态库项目中,添加头文件
demoStaticLib.h
。
- 在头文件中
demoStaticLib.h
添加如下类声明。
#pragma once
//demoStaticLib.h
class ArrayTool
{
public:
//找出数组中最大值的元素
int Max(const int* lpHead, const int nLength);
//数组元素求和
int Sum(const int* lpHead, const int nLength);
protected:
private:
};
在源文件中输入如下实现。
// demoStaticLib.cpp : 定义静态库的函数。
//
#include "pch.h"
#include "framework.h"
#include "demoStaticLib.h"
// TODO: 这是一个库函数示例
void fndemoStaticLib()
{
}
int ArrayTool::Max(const int* lpHead, const int nLength)
{
int nMaxVal = lpHead[0];
for (int i = 0; i < nLength; i++)
{
if (nMaxVal < lpHead[i])
{
nMaxVal = lpHead[i];
}
}
return nMaxVal;
}
int ArrayTool::Sum(const int* lpHead, const int nLength)
{
int nTotal = 0;
for (int i = 0; i < nLength; i++)
{
nTotal += lpHead[i];
}
return nTotal;
}
- 在项目
demoStaticLib
上右键生成,即可生成静态库demoStaticLib.lib
。
调用静态库
- 在解决方案中新建项目控制台应用
useStaticApp.cpp
。
- 引入静态库。右键
useStaticApp
项目,添加 → \rightarrow →引用 → \rightarrow →勾选demoStaticLib
。
- 包含静态库头文件所在的目录。右键
useStaticApp
项目,属性 → \rightarrow →配置属性 → \rightarrow →C/C++ → \rightarrow →常规 → \rightarrow →附加包含目录 → \rightarrow →添加新行 → \rightarrow →选择静态库所在目录。
- 包含头文件。在
useStaticApp.cpp
中包含demoStaticLib.h
头文件。
- 调用静态库。输入如下代码,右键
useStaticApp
项目 → \rightarrow →设为启动项目 → \rightarrow →生成 → \rightarrow →本地Windows调试器。
// useStaticApp.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <demoStaticLib.h>
int main()
{
int nArr[] = { 1, 34, 6, 7, 8, 35, 67 };
ArrayTool at;
int nLen = sizeof(nArr) / sizeof(int);
std::cout << "数组的最大元素" << at.Max(nArr, nLen) << std::endl;
std::cout << "数组元素之和" << at.Sum(nArr, nLen) << std::endl;
return 0;
}
- 结果如下,说明调用静态库成功!
调试静态库
- 只能在主程序中调试静态库,可在主程序中设置断点,进而调试静态库。