C++语言编写静态链接库及其使用

上一篇当中我写到使用C编写静态库,然后在C和C++两种环境下使用,今天我们来讨论用C++编写静态库以及如何使用

一、C++语言的静态库

1、静态库的建立

a.建立项目

b.添加库程序,源文件使用cpp文件(Win32 Static Library)

cpplib.cpp源文件

int CppLib_add(int num1,int num2)
{
	return num1+num2;
}

int CppLib_sub(int num1,int num2)
{
	return num1-num2;
}
编译链接后产生cpplib.lib,下面将使用其产生lib文件

2、库的导入

a.项目的"Setting" 中设置库的路径

b.可以使用#pragma 关键字设置 即 #pragma comment(lib,"..\\cpplib\cpplib.lib")


3、cpp静态库程序的调用

#include <iostream>
using namespace std;
int CppLib_add(int num1,int num2);	//声明
int CppLib_sub(int num1,int num2);	//声明
//以上三句是给编译器看得.

#pragma comment(lib,"..\\cpplib\cpplib.lib")
//以上一句代码是给链接器看的.

//
//上面是C++静态库的调用,下面是C静态库的调用,两者调用均在CPP环境中。
//

extern "C" int CLib_add(int num1,int num2);
extern "C" int CLib_sub(int num1,int num2);	//extern "C" 给c++编译器看,这个是按照C语言格式进行编译.
//以上二句是给编译器看得.

#pragma comment(lib,"..\\clib\clib.lib")
//以上一句代码是给链接器看的.

int main(void)
{
	int num1 = 100;
	int num2 = 1000;

	int nSum = CppLib_add(num1,num2);
	int nSub = CppLib_sub(num1,num2);


	cout<<"nSum = "<<nSum<<" nSub = "<<nSub<<endl;


	nSum  = CLib_add(num1,num2);
	nSub  = CLib_sub(num1,num2);

	cout<<"nSum = "<<nSum<<" nSub = "<<nSub<<endl;

	return 0;
}

总结:

<span style="white-space:pre">	</span>1).cpp环境中,C++函数必须得有声明
<span style="white-space:pre">	</span>2).c环境中C函数不必声明
<span style="white-space:pre">	</span>3).C++编译器编译函数时,必须找到声明,按照那种方式给函数进行编译。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值