首页 > 编程语言 >Win32编程之静态库(六)

Win32编程之静态库(六)

时间:2023-09-15 23:34:52浏览次数:42  
标签:sub lib sub1 静态 编程 Win32 int pragma

一、静态库的特点

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

二、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;
}

  

标签:sub,lib,sub1,静态,编程,Win32,int,pragma
From: https://www.cnblogs.com/TechNomad/p/17706129.html

相关文章

  • 结构化编程
    学习一门技术最好的方式就是阅读官方文档,可以查看MATLAB官方文档流程控制语句和逻辑运算符与大多数编程语言相同,MATLAB有以下流程控制语句:流程控制语句作用if,elseif,else若if语句为真,则执行子句switch,case,otherwise根据switch语句内容判断执行哪个子句while重复执行子句......
  • 《Java编程思想第四版》学习笔记28
    //:PrintFile.java//Shorthandclassforopeninganoutputfile//forhuman-readableoutput.packagecom.bruceeckel.tools;importjava.io.*;publicclassPrintFileextendsPrintStream{publicPrintFile(Stringfilename)throwsIOException{super(n......
  • Python并发编程——IO模型、阻塞IO、非阻塞IO、多路复用、异步IO、IO模型比较、select
    文章目录每日测验一IO模型介绍二阻塞IO(blockingIO)三非阻塞IO(non-blockingIO)四多路复用IO(IOmultiplexing)五异步IO(AsynchronousI/O)六IO模型比较分析七selectors模块网络并发知识点梳理网络并发知识点梳理每日测验简述死锁现象你用过哪些队列阐述进......
  • 如何选择最适合您的AI编程工具
    ChatGPT的广泛应用引发了人工智能应用场景的重大变革和实践的探索。大规模专业模型在垂直领域得到了不断深化和实施。其中,基于大模型的编码AI工具的问世大大降低了开发复杂度,提高了开发人员的工作效率,对初级开发人员尤其有帮助。所以说,面对目前市场上涌现出的众多优秀的AI编程辅......
  • C#桌面应用程序多语言编程
    当我们的软件需要在国外应用时,就需要将软件界面的文字切换成相应国家的语言,这时就需要实现软件界面的多语言,也称为国际化,本篇博客讲的是C#的多语言版本的实现。本篇博客分别讲解如下内容:主窗体的多语言实现自定义窗体的多语言实现自定义控件的多语言实现MessageBox对话框的多语言......
  • Java面向对象编程
    今天开始面向对象了面向对象基础类:由属性和行为组成属性:在类中通过成员变量来体现行为:在类中通过成员方法来体现publicclass类名{//成员变量变量1的数据类型变量1;变量2的数据类型变量2;......
  • Java静态导入
    今天在看开源项目的时候发现了这样一句代码importstaticcom.abin.mallchat.common.common.service.frequencycontrol.FrequencyControlStrategyFactory.TOTAL_COUNT_WITH_IN_FIX_TIME_FREQUENCY_CONTROLLER;我虽然工作了有三年时间了,但是这样的代码还是第一次看见,看见的第一......
  • Unity 游戏开发、03 基础篇 | C#初级编程
    C#初级编程https://learn.u3d.cn/tutorial/beginner-gameplay-scripting8Update和FixedUpdateUpdate(不是按固定时间调用的)经常用于移动非物理特性的物体(不是物理对象)简单定时器接收输入FixedUpdate(调用时间间隔相同)进行任何必要的物理计算(任何物理对象)最好使用力......
  • HBase学习5(HBase java编程:创建项目,创建删除表,数据增删改查)
    1.准备工作1.1创建IDEAMaven项目其中名字为hbase_op,groupid为cn.itcast然后导入pom依赖<repositories><!--代码库--><repository><id>aliyun</id><url>http://maven.aliyun.com/nexus/content/groups/public/</url>&l......
  • 《Python编程快速上手——让繁琐工作自动化》 原版电子书PDF+源码
    第11章从Web抓取信息第12章处理Excel电子表格第13章处理PDF和Word文档第14章处理CSV文件和JSON数据第15章保持时间、计划任务和启动程序第16章发送电子邮件和短信第17章操作图像第18章用GUI自动化控制键盘和鼠标附录A安装第三方模块附录B运行程序附录C习题答案下载:https......