Win32编程之静态库(六)

一、静态库的特点

  • 运行不存在
  • 静态库源码被链接到调用程序中
  • 目标程序的归档

二、C语言静态库

1.C静态库的创建

  • 创建一个静态库项目
  • 添加库程序,源文件使用C文件

2.C静态库的使用

  • 库路径的设置:可以使用pragma关键字设置;#pragma comment(lib, "../lib/clib.lib")

三、C++语言静态库

1.C++静态库的创建

  • 创建一个静态库项目
  • 添加库程序,源文件使用CPP文件

2.C++静态库的使用

  • 库路径设置:可以使用pragma关键字设置;#pragma comment(lib, "../lib/cpplib.lib")

库头文件:

#pragma once
int CPPlib_add(int add1, int add2); int CPPlib_sub(int sub1, int sub2);

库源文件:

#include "WinLib.h"

int CPPlib_add(int add1, int add2) {
	return add1 + add2;
}

int CPPlib_sub(int sub1, int sub2) {
	return sub1 - sub2;
}

 调用CPP静态库:

#include <iostream>
#include "../WinLib/WinLib.h"

using namespace std;

#pragma comment(lib, "../Debug/WinLib.lib")

int main() {
	int sum = CPPlib_add(5, 4);
	int sub = CPPlib_sub(5, 4);

	cout << "sum =" << sum << ", sub = " << sub << endl;
 
	return 1;
}

三、C++调用C静态库

库头文件:

#pragma once

extern "C" int Clib_add(int add1, int add2);

extern "C" int Clib_sub(int sub1, int sub2);

库源文件:

#include "CLib.h"

int Clib_add(int add1, int add2) {
	return add1 + add2;
}

int Clib_sub(int sub1, int sub2) {
	return sub1 - sub2;
}

C++调用C静态库示例: 

#include <iostream>
#include "../CLib/CLib.h"

using namespace std;

#pragma comment(lib, "../Debug/CLib.lib")

int main() {
	int sum = Clib_add(5, 4);
	int sub = Clib_sub(5, 4);

	cout << "sum =" << sum << ", sub = " << sub << endl;
 
	return 1;
}

  

posted @ 2023-09-15 23:16  TechNomad  阅读(72)  评论(0)    收藏  举报