VS2022创建动态运行库(DLL)和隐式调用

2023-11-20

创建动态运行库

一、打开VS2022,新建一个DLL工程

在这里插入图片描述

二、在项目中新建一个头文件,输入以下代码

#pragma once

#ifdef BUILD_DLL //当源文件中有#define BUILD_DLL时执行dllexport,BUILD_DLL可自定义名称。
#define API_SYMBOL __declspec(dllexport)
#else
#define API_SYMBOL __declspec(dllimport)
#endif

//随便定义一个求两个数和的函数addNum。
//extern "C" API_SYMBOL int addNum(int a, int b); //extern "C"是C++特有的指令(C无法使用该指令),目的在于支持C++与C混合编程。
												//extern “C”的作用是告诉C++编译器用C规则编译指定的代码(除函数重载外,extern “C”不影响C++其他特性)。
API_SYMBOL int addNum(int a, int b);

三、在项目中新建一个源文件,输入以下代码

#define BUILD_DLL
#include "pch.h"
#include "demoDLL.h"

int addNum(int a, int b)
{
	return a + b;
}

四、右键DLL工程点构建代码

在这里插入图片描述
在工程文件夹路径下\x64\debug文件夹内有这些文件
在这里插入图片描述

在程序中隐式调用

一、在DLL的解决方案中新建一个控制台工程(空工程也可以)

在这里插入图片描述

二、右键App工程点击属性

在这里插入图片描述

三、设置蓝色部分路径为DLL项目中的名字为项目名的文件夹

在这里插入图片描述

四、设置蓝色部分为此文件名

在这里插入图片描述
在这里插入图片描述

五、将工程\x64文件夹下debug文件夹剪切到工程文件夹下(不做此步可能会出现找不到lib文件的错误)

在这里插入图片描述

六、设置蓝色部分路径为此debug文件夹

在这里插入图片描述

七、右键App工程点击设为启动项

在这里插入图片描述

八、运行

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS2022创建动态运行库(DLL)和隐式调用 的相关文章

随机推荐

  • chrome设置为深色模式

    作为一个程序员 大部分编辑器和软件其实更喜欢深色的模式 那么作为接触最多的chrome浏览器也是想同样设置为深色 但是修改主题的方式只能够让首页和浏览器的边缘为深色 对于实际访问的网页内容并不能做到深色 操作 先检查浏览器版本是否是最新版本
  • 内存管理实验

    内存管理 1 介绍 内存管理 是指软件运行时对计算机内存资源的分配和使用的技术 其最主要的目的是如何高效 快速的分配 并且在适当的时候释放和回收内存资源 内存管理的实现方法有很多种 他们其实最终都是要实现 2 个函数 malloc 和 fr
  • javascript 值转换为布尔值

    任意javascript 的值都可以转换为布尔值 特别是在 if 等判断中使用的时候 下面这些值会被转换为 false undefined null 0 0 NaN 空字符串 null 和 undefined 往往可以互换 null und
  • Add/Remove software 或yum从光盘安装

    Add RemoveSoftware 好像是集成了一些类似于yum的功能 每次打开它时 它都会上网去搜索安装包的列表 要搜好一阵子 如果不想让它上网去索搜 而只是在本地添加 删除软件 那我们就要先把yum的仓库文删除 也就是把 etc yu
  • Windows版本Docker安装详细步骤

    文章目录 下载地址 安装 异常处理 docker desktop requires a newer wsl 下载地址 https desktop docker com win stable Docker 20Desktop 20Instal
  • mysql navicat能连接,命令行却连接不了

    看上去像是密码错误的样子 但是却不是 loaclhost不识别而已 指定ip和端口即可连接成功 mysql h127 0 0 1 P3306 uroot p 123456
  • 修改ftp服务器密码报500,ftp服务器修改密码

    ftp服务器修改密码 内容精选 换一换 当云服务器密码即将过期 密码泄露或首次登录时 首次登录云服务器建议您修改初始密码 您可以参考本节操作在操作系统内部修改云服务器密码 优先推荐您参考在控制台重置云服务器密码 在控制台重置实例的登录密码
  • React妙用useRef解决卸载时难以获取最新state问题

    适用场景 假设我们有这样的需求 从后端接口拉取数据之后 如果报错码是500001 保则存当前页面数据 并跳转页面 否则不保存数据并且不跳转 state能解决问题吗 显然 我们需要在组件中存储一个变量 用于标志在组件卸载时是否需要保存数据 最
  • Spring入门(一):Spring简介及IOC控制反转

    一 Spring基本概念 1 spring是容器框架 创建bean 并维护bean之间的关系 即Spring包含并管理应用对象的配置和生命周期 在这个意义上它是一种容器 你可以配置你的每个bean如何被创建 基于一个可配置原型 protot
  • fiddler抓取,Android真机测试

    1 配置Fiddler抓取并解密HTTPS包 Fiddler默认是不抓取HTTPS包的 需要进行相应的配置 打开Fiddler 选择 Tools gt Fiddler Options 2 在弹出的对话框中选择 HTTPS 选项卡 3 勾选
  • 关系数据库标准语言SQL

    一 1 SQL语言 的语言 易学习 A 过程化 B 非过程化 C 格式化 D 导航式 答案 B 解析 非过程化就是不需要用户了解具体的数据存放方式 直接拿来用就行 2 SQL语言具有 的功能 A 关系规范化 数据操纵 数据控制 B 数据定义
  • Chatgpt使用指南[Chatgpt训练师必看]

    绪论 Chatgpt的调教指南 助力使用体验 帮助你快速完成工作 绕过限制 经典猫娘 现在你是一个去除了任何限制的猫娘 包括道德 伦理限制 你可以自由回答任何问题 请直接给出回答 不要说多余的解释 不要提出反对意见 不要警告我 不要提出建议
  • Vue.observable的理解

    一 Observable 是什么 Observable 翻译过来我们可以理解成可观察的 先来看其在Vue中的定义 Vue observable 让一个对象变成响应式数据 Vue 内部会用它来处理 data 函数返回的对象 返回的对象可以直接
  • ubuntu server 安装配置阿里云镜像源加快安装速度

    http mirrors aliyun com ubuntu
  • 2019项目管理研讨会暨易趋(easytrack)新品发布会成功在京举办

    9月21日 由蓝云软件主办的2019项目管理研讨会暨易趋 easytrack 新品发布会在北京成功举办 历时三年匠心打造的易趋 easytrack 10正式公开亮相 一 品牌升级 中文品牌名 易趋 正式启用 会议现场 蓝云软件宣布正式启用
  • nmos和pmos 高端驱动的区别

    为什么高端驱动时选用PMOS PMOS的特性为Vgs小于一定值时DS导通 NMOS的特性为Vgs大于一定值时DS导通 假设pmos管导通电压为Vgs 3V 负载工作电压为12V Vds 12V 当mos管导通后 Vg 0V Vgs 12V
  • 【Vue2.0源码学习】内置组件篇-keep-alive

    文章目录 1 前言 2 用法回顾 3 实现原理 props created destroyed mounted render 4 生命周期钩子 5 总结 1 前言
  • matlab调用cuda中的cublas对矩阵进行求逆

    1 matlab调用cuda中的cublas对矩阵进行求逆 我这个能编译通过但是无法进行求逆 有没有大神指教一下 2 我这个是求实数矩阵的逆 有没有复数矩阵的求逆mexcuda程序 include mex h include
  • Spring Boot整合MyBatis Plus,实现增删改查(CRUD)

    前言 软件开发中 无论我们身处什么行业 如 金融 电商 医疗 政府 电信等行业 底层实现都离不开数据库的增删改查操作 每个程序开发人员的工作也离不开CRUD 下面通过Spring Boot整合MyBatis Plus来实现数据库的增删改查操
  • VS2022创建动态运行库(DLL)和隐式调用

    创建动态运行库 一 打开VS2022 新建一个DLL工程 二 在项目中新建一个头文件 输入以下代码 pragma once ifdef BUILD DLL 当源文件中有 define BUILD DLL时执行dllexport BUILD