VS2019生成和使用lib、dll文件

news2025/4/9 7:21:48

叠甲:本文非常简略,方法非常朴素,仅供参考。

目录

lib文件

生成lib文件

使用lib文件

dll文件

生成dll文件

使用dll文件


lib文件

生成lib文件

新建项目libTest。

右键项目→属性→配置属性→常规→配置类型,选择“静态库(.lib)”:

添加demo.h:

#pragma once
#ifndef demo_H

int myAdd(int a, int b);
class student
{
public:
	static int num;
};

#define demo_H

#endif 

#pragma once

添加demo.cpp:

#include "demo.h"
int myAdd(int a, int b)
{
	return a + b;
}

int student::num = 188;

 生成→生成解决方案:

在Debug文件夹下可以找到输出的libTest.lib文件:

使用lib文件

新建项目libUse。

在项目libUse的文件夹下,新建lib文件夹。然后把libTest.lib复制到libUse/lib文件夹下。

按照如下3步进行配置:

  1. 右键项目→属性→C/C++→常规→附加包含目录,添加libTest的路径(即demo.h的路径)
  2. 右键项目→属性→链接器→常规→附加库目录,添加libUse/lib路径(即libTest.lib的路径)
  3. 右键项目→属性→链接器→输入→附加依赖项,添加libTest.lib

通过上面的步骤,成功为libUse导入了libTest.lib,可以直接使用了。使用方法如下:

#include "demo.h"
#include <cstdio>
using namespace std;
int main() {
	int x = myAdd(3, 4);
	int y = student::num;

	printf("%d %d\n", x, y);
	return 0;
}

dll文件

生成dll文件

我直接使用了动态链接库模板,创建新项目Dll1:

 新建dllTest.h:

#pragma once
#include <iostream>

extern "C" __declspec(dllexport) void Hello();

新建dllTest.cpp:

#include "pch.h"
#include "dllTest.h"

void Hello()
{
	std::cout << "Hello!" << std::endl;
}

  生成→生成解决方案:

在Debug文件夹下可以找到输出的Dll1.lib和Dll1.dll文件:

使用dll文件

新建项目dllUse。

在项目dllUse的文件夹下,新建lib文件夹。然后:

  1. 把Dll1.lib复制到dllUse/lib文件夹下。
  2. 把Dll1.dll复制到dllUse/Debug文件夹下(注:即dllUse项目的exe文件存放的位置)(如果还没有Debug文件夹,运行一下就有了)。

按照如下3步进行配置:

  1. 右键项目→属性→C/C++→常规→附加包含目录,添加Dll1的路径(即dllTest.h的路径)
  2. 右键项目→属性→链接器→常规→附加库目录,添加dllUse/lib路径(即Dll1.lib的路径)
  3. 右键项目→属性→链接器→输入→附加依赖项,添加Dll1.lib

通过上面的步骤,成功为dllUse导入了Dll1.lib和Dll1.dll,可以直接使用了。使用方法如下:

#include "dllTest.h"
using namespace std;
int main() {
    Hello();
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/631870.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】表白墙终章-飞流直下的“甜言蜜语”-瀑布流式布局

飞流直下三千尺&#xff01; 文章目录 【Java】表白墙终章-飞流直下的“甜言蜜语”-瀑布流式布局1. 效果前后对比2. 瀑布流式布局原理思想3. 约定前后端接口4. 后端代码4.1 修改Love类的定义4.2 修改doPost方法4.3 修改save方法4.4 修改doGet方法4.5 修改load方法 5. 前端瀑布流…

面试总结个人版

一、面试题 java 集合 &#xff0c; spring springmvc springboot springcloud 数据库相关的&#xff0c; redis 相关 &#xff0c;mq 相关 &#xff0c;结合业务的场景题 1、part one 集合 HashMap底层原理 HashMap是基于哈希表的Map接口的非同步实现。元素以键值对的形式存…

asp.net教师调课系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net教师调课管理系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言开发 asp.net教师调课系统VS开发sqlser…

deadline用WebService提交Job

官方文档 网站链接 进入rest API&#xff0c;点击jobs&#xff0c;找到submit job 这里可以看到消息体需要用到JobInfo和PluginInfo这两个关键的字典&#xff08;json object&#xff09; 拿到对应的键值对 为了填写url请求的消息体 我们需要拿到必须参数的键值对 点击双击…

如何延长电脑硬盘的使用寿命?

在日常使用电脑过程中&#xff0c;一定要做好硬盘的保养和维护&#xff0c;一旦硬盘损坏&#xff0c;保存在硬盘上的数据就会丢失&#xff0c;而且找回数据也是一件很费功夫的事情&#xff0c;甚至有可能永远也找不回来。所以日常工作中定期对资料进行备份&#xff0c;做好电脑…

【算法与数据结构】24、LeetCode两两交换链表中的节点

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;题目要求两两交换节点。在链表当中非常重要就是下一个节点&#xff0c;一旦丢失&#xff0c;这个节点后…

IDL基础语法

1 创建变量 命名规则&#xff1a;变量名必须以字母开头。它们可以包括其它字母&#xff0c;数字&#xff0c;下划线&#xff0c;美元符号。 以下是创建不同数据类型的方法&#xff0c;我们只需了解即可&#xff0c;知道如何创建整型【16位有符号长整型】和浮点型 PRO learn;创…

RedisGraph的整体架构

The architecture of RedisGraph 本文关注RedisGraph的整体架构&#xff0c;分别从图存储模型、索引、并发控制、和执行计划四个方面简要阐述。下图为RedisGraph的整体架构图。 1 图存储模型 了解一个图数据库的架构&#xff0c;最重要的就是其图存储模型&#xff0c;即其中的…

freeswitch 使用 silero-vad 静音拆分使用 fastasr 识别

silero-vad 在git 的评分挺高的测试好像比webrtc vad好下面测试下 silero-vad 支持c 和py 由于识别c的框架少下面使用py 以下基于python3.8torch1.12.0torchaudio 1.12.0 1.由于fastasr 需要16k 所以 将freeswitch的实时音频mediabug 8k转成16k 用socket传到py 模块代码…

二十三种设计模式(待更)

二十三种设计模式 二十三种设计模式结构型1.适配器 相关资料 二十三种设计模式 资料来源于老师讲解以及大佬的设计模式仓库 zhengqingya 结构型 将对象和类按某种布局组成更大的结构&#xff0c;并同时保持结构的灵活和⾼效。 1.适配器 将一个类的接口转换成客户希望的另外…

【小沐学Python】Python实现在线电子书(MkDocs + readthedocs + github + Markdown)

文章目录 1、简介2、安装3、创建新项目4、添加页面5、编辑导航页6、设置主题7、更改图标图标8、构建网站9、部署9.1 准备github项目9.2 注册登录Read the Docs9.3 导入github项目到 Read the Docs 10、Markdown语法10.1 横线10.2 标题10.3 段落10.4 文字高亮10.5 换行10.6 斜体…

你不可不知的八大全新顶级开源项目

导读九年来&#xff0c;Black Duck开源年度奖一直致力于发现过去一年中出现的最具创新性与影响力的开源项目。尽管开源项目阵营一直在快速变化&#xff0c;但年度新人奖一直在为行业趋势提供重要参考。下面&#xff0c;我们将了解这一年中的各位获奖新人! 九年来&#xff0c;B…

adb详细教程(一)-下载安装与环境变量配置

对于Android开发来说&#xff0c;adb是再熟悉不过的调试工具 但其实对于移动端的测试来说&#xff0c;adb也是一个十分重要的、能够提高测试工作效率的工具。 文章目录 一、介绍二、下载地址三、安装四、配置环境变量 一、介绍 全称 adb全称全称为Android Debug Bridge&#x…

【Python】在同一图形中的绘制多个子图

1. 引言 有时我们需要并排绘制两个图形&#xff0c;这不仅是为了更好地利用空间&#xff0c;而且主要是因为为了更加直观地对比分析数据。其实在python中可以利用subplot来实现上述功能。 闲话少说&#xff0c;我们直接开始吧&#xff01; 2. 准备工作 这里&#xff0c;我们…

JavaScript 教程---互联网文档计划

学习目标&#xff1a; 每天记录一章笔记 学习内容&#xff1a; JavaScript 教程---互联网文档计划 笔记时间&#xff1a; 2023-6-5 --- 2023-6-11 学习产出&#xff1a; 1.入门篇 1、JavaScript 的核心语法包含部分 基本语法标准库宿主API 基本语法&#xff1a;比如操作符…

代码随想录第57天

1.回文子串 暴力解法 两层for循环&#xff0c;遍历区间起始位置和终止位置&#xff0c;然后还需要一层遍历判断这个区间是不是回文 动态规划 动规五部曲&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 如果大家做了很多这种子序列相关的题目&…

基于html+css的图展示118

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

ChatGPT对未来编程语言发展的影响与展望

目录 一、引言1.ChatGPT的介绍与背景介绍背景 2.编程语言发展的重要性和挑战重要性挑战 二、ChatGPT在编程领域的应用1.自然语言处理技术在编程中的应用现状2. ChatGPT作为编程辅助工具的潜力与优势 三、ChatGPT对编程语言发展的影响1. 创新编程模式的涌现2. 语言设计与交互方式…

【高危】GitLab CE/EE 16.0.0存在路径遍历漏洞(存在POC)

漏洞描述 GitLab 是一款基于Git的代码托管、版本控制、协作开发平台。 在 GitLab CE/EE 16.0.0版本中 &#xff0c;在文件上传时未对filename参数进行安全过滤&#xff0c;导致存在路径遍历漏洞&#xff0c;若嵌套在五个组及以上的公共项目中存在附件时&#xff0c;未经身份验…

以ChatGPT辅助软件架构工作

以ChatGPT辅助软件架构工作 在目前技术瞬息万变的背景下&#xff0c;软件建构师需要持续探索并采纳新颖的工具和方式&#xff0c;以提升开发流程&#xff0c;增强效率&#xff0c;同时保障最后成品的品质。在此之中&#xff0c;人工智能&#xff08;AI&#xff09;已经演变为一…