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")

库头文件:

1
2
3
#pragma once<br>
int CPPlib_add(int add1, int add2);
int CPPlib_sub(int sub1, int sub2);

库源文件:

1
2
3
4
5
6
7
8
9
#include "WinLib.h"
 
int CPPlib_add(int add1, int add2) {
    return add1 + add2;
}
 
int CPPlib_sub(int sub1, int sub2) {
    return sub1 - sub2;
}

 调用CPP静态库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#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静态库

库头文件:

1
2
3
4
5
#pragma once
 
extern "C" int Clib_add(int add1, int add2);
 
extern "C" int Clib_sub(int sub1, int sub2);

库源文件:

1
2
3
4
5
6
7
8
9
#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静态库示例: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#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 @   TechNomad  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示