windows静态库的使用
2024-08-27 20:50:33
最近在学Zeromq(像框架一样的一个socket library)的使用,里面有关于库的使用问题。今天就来复习下静态库的使用:
使用静态库是重用代码的一种绝佳方式。您不必在自己创建的每个程序中重新实现同一例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它们即可。
Missoft msdn library参考:http://msdn.microsoft.com/zh-cn/library/ms235627(v=vs.90).aspx
参考文章:http://hi.baidu.com/schsun/item/fafcd31b528716c539cb308d
(一).静态库的创建步骤:
1.选择“Win32 控制台应用程序”.
2.选择“应用程序类型”下的“静态库".
3.清除“附加选项”下的“预编译头”复选框。
4.添加一个头文件:MathFuncsLib.h
// MathFuncsLib.h
#ifndef _MATCH_H
#define _MATCH_H namespace MathFuncs
{
class MyMathFuncs
{
public:
// Returns a + b
static double Add(double a, double b); // Returns a - b
static double Subtract(double a, double b); // Returns a * b
static double Multiply(double a, double b); // Returns a / b
// Throws DivideByZeroException if b is 0
static double Divide(double a, double b);
};
} #endif
5.添加一个源文件:MathFuncsLib.cpp
// MathFuncsLib.cpp #include "MyExecRefsLib.h"
#include "MathFuncsLib.h"
#include <stdexcept> using namespace std; namespace MathFuncs
{
double MyMathFuncs::Add(double a, double b)
{
return a + b;
} double MyMathFuncs::Subtract(double a, double b)
{
return a - b;
} double MyMathFuncs::Multiply(double a, double b)
{
return a * b;
} double MyMathFuncs::Divide(double a, double b)
{
if (b == )
{
throw new invalid_argument("b cannot be zero!");
} return a / b;
}
}
6.编译这个工程就,在工程所在文件夹的Debug文件夹中生成.lib文件,这个文件就是一个静态库。
使用静态库我们需要这个 “*.lib"文件和刚刚的".h"文件。
(二).静态库的使用。
1.还是创建“Win32 控制台应用程序”(其他也可以,举个例子而已)。
2.把".lib"文件和".h"文件复制到新项目的目录。
3.把“.h"文件添加进去。右击头文件/添加/现有项:
4.添加一个源文件:
#include <iostream> #include "MyExecRefsLib.h"
#pragma comment( lib, "..\\staticLib\\MyExecRefsLib.lib" ) //加载静态库
using namespace std; int main()
{
double a = 7.4;
int b = ; cout << "a + b = " <<
MathFuncs::MyMathFuncs::Add(a, b) << endl;
cout << "a - b = " <<
MathFuncs::MyMathFuncs::Subtract(a, b) << endl;
cout << "a * b = " <<
MathFuncs::MyMathFuncs::Multiply(a, b) << endl;
cout << "a / b = " <<
MathFuncs::MyMathFuncs::Divide(a, b) << endl; return ;
}
5.编译,生成
。
以上就是静态库的基本使用步骤,记录下来,以防自己忘掉。
注:其实
#pragma comment( lib, "..\\staticLib\\MyExecRefsLib.lib" ) //加载静态库
这个代码可以去掉,改为手动在 项目/**属性 中设置
1."VC++ 目录" 的 "库目录" 加上刚刚的 ".lib"文件所在目录.
2."连接器" 的 "输入" 的 “附近依赖项” 加上 库的文件名 "*.lib".
最新文章
- js实例--飞机大战
- CPU的性能对比
- 编译android源码官方教程(3)下载代码
- POJ1008Maya Calendar
- python selenium自动化(三)Chrome Webdriver的兼容
- OC 冒泡排序 -- 核心代码
- ssh框架用JUnit测试
- selenium自动化测试
- mac上搭建appium+IOS自动化测试环境(一)
- CentOS7快速搭建LNMP环境
- ARM-linux与Ubuntu开发工具NFS及流程
- C# 方法扩展
- VDSR
- IntelliJ IDEA常用快捷键(一)
- 五.JQuary 实例
- 爬虫之requests请求库高级应用
- SharePoint Framework 企业向导(五)
- Android检查手机上是否安装了第三方软件的方法------本文以百度地图为例
- oracle 删除字段中空格
- Qt判断操作系统代码