Visual Studio导出动态库

news2024/11/17 7:32:20

1、创建新项目,选择如下

2、工程目录结构如下

 

3、编写pch.h文件,内容如下

// pch.h: 这是预编译标头文件。
// 下方列出的文件仅编译一次,提高了将来生成的生成性能。
// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。

#ifndef PCH_H
#define PCH_H

// 添加要在此处预编译的标头
#include "framework.h"

#ifdef MYCPP_EXPORTS
#define DLLAPI __declspec(dllexport)
#else 
#define DLLAPI __declspec(dllimport)
#endif

extern int DLLAPI g_value;

class DLLAPI SimpleClass {
public:
	SimpleClass();
	~SimpleClass();
	int getValue() const;
};

extern "C"
{
	DLLAPI int myAdd(int a, int b);
	DLLAPI int myMinus(int a, int b);
	DLLAPI int myMultipy(int a, int b);
	DLLAPI double myDevide(int a, int b);
}

#endif //PCH_H

4、编写pch.cpp文件,内容如下

// pch.cpp: 与预编译标头对应的源文件

#include "pch.h"

// 当使用预编译的头时,需要使用此源文件,编译才能成功。
int g_value = 100;

SimpleClass::SimpleClass()
{
}

SimpleClass::~SimpleClass()
{
}

int SimpleClass::getValue() const
{
	return g_value;
}


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

int myMinus(int a, int b) {
	return a - b;
}

int myMultipy(int a, int b) {
	return a * b;
}

double myDevide(int a, int b) {
	double m = (double)a / b;
	return m;
}

5、生成动态库

点击 生成->生成解决方案 即可,注意这里解决平台是Debug x64,后面调用的时候也必须和这个平台一致,不然会报错。你也可以使用release,只要做到前后一致即可。

生成的mycpp.dll和mycpp.lib保存在${projectName}/x64/Debug目录下,如果你选择的其他release平台或者x86,就保存在相应的目录下。

 

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

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

相关文章

AI驱动TDSQL-C Serverless 数据库技术实战营-融合智能体与TDSQL-C技术,高效实现二手房数据查询与分析应用

文章目录 什么是TDSQL-C技术创新算力服务器与数据库服务器申请与部署购买 TDSQL-C Mysql Serverless 实例购买HAI高算力服务器 准备工作准备数据下载依赖 案例研发创建数据库写入数据智能体与TDSQL-C 的结合应用第一步配置llama3.1第二步代码开发运行应用测试应用 总结 什么是T…

戏曲多多 1.0.6.0 专为电视端设计的戏曲与生活内容APP,同样适用于安卓手机,方便老年人使用

戏曲多多是一款专为电视端设计的应用程序,也可安装在安卓手机上,特别适合不会使用手机的老年人。该应用包含戏曲、红歌、儿歌、老电影等丰富内容,非常适合老年人的观看喜好。此外,还有广场舞教学、养生太极教程(包括太…

Qualitor processVariavel.php 未授权命令注入漏洞复现(CVE-2023-47253)

0x01 漏洞概述 Qualitor 8.20及之前版本存在命令注入漏洞,远程攻击者可利用该漏洞通过PHP代码执行任意代码。 0x02 复现环境 FOFA:app"Qualitor-Web" 0x03 漏洞复现 PoC GET /html/ad/adpesquisasql/request/processVariavel.php?gridValoresPopHi…

3 pyqt5 Layout布局(保证主界面缩放各组件也对应缩放)== 主要有Qt Designer和完全代码设置两种设计方式(根据自己情况选择即可)

文章目录 前言一、Layout的类别二、使用Qt Designer进行Layout布局三、完全使用代码进行Layout布局前言 本节我们的http测试的例子,只实现界面方面的逻辑,底层不用管。我们主要的目的是通过这个例子设计界面布局。 我们前面写的界面程序有个问题,如果你用鼠标拖拽主窗口边…

雷达系统中杂波信号的建模与仿真

雷达系统中杂波信号的建模与仿真 2 杂波建模与模拟方法 2.1 杂波建模 杂波可以说是雷达在所处环境中接收到的不感兴趣的回波[4]。就像目标回波一样,杂波也是极为复杂的。为了有效地克服杂波对信号检测的影响,需要知道杂波的幅度特性以及频谱特性。除独…

JavaScript爬虫:数据抓取的艺术与实践

在当今数据驱动的世界中,JavaScript作为一种广泛使用的编程语言,不仅在前端开发中占据重要地位,也可以用于编写爬虫程序,从互联网上抓取有价值的数据。本文将介绍如何使用JavaScript编写爬虫程序,并探讨其在数据抓取中…

Harmony next Native API 开发工程实践

旨在通过文档,了解华为native开发中的关键节点,能够搭建一个比较实用的native功能、 目录 前言 一、napi是什么? 二、简单开始一个napi的实例 1.适配架构配置 2.新增实现 3.官方实例 4.napi与ark通讯的几种方式 Native侧的CallNative Native …

从耐用到防水:全面综合评估SD卡的性能指标

SD卡(Secure Digital Memory Card)是一种广泛使用的存储器件,因其快速的数据传输速度、可热插拔的特性以及较大的存储容量,广泛应用于各种场景,例如在便携式设备如智能手机、平板电脑、运动相机等,用于存储…

Docker镜像、Spark支持多表...Apache SeaTunnel 2.3.8版本将带来的惊喜

Apache SeaTunnel 2.3.8版本即将于大家见面,近日,Apache SeaTunnel PMC Member 范佳在社区的交流会上为大家提前透露了关于这个新版本即将进行的功能与特性更新概况,详细内容如下: SeaTunnel 简介 SeaTunnel是一个高性能的开源分…

【生物服务器】DAP-seq与H3K4me3 ChIP-seq服务,推动表观遗传学研究的创新工具

查看全文>>>探索基因调控新维度:汇智生物的DAP-seq与H3K4me3 ChIP-seq服务,推动表观遗传学研究的创新工具与合作案例 北京汇智精研生物科技由毕业于中国科学院、北京大学肿瘤医院、中国农科院、中国农业大学等科研院所的国家高精尖人才发起&…

计算机网络--HTTP协议

1.TCP,UDP的对比图 TCP:面向连接的,可靠的,字节流服务; UDP:无连接的,不可靠的,数据报服务; 2.补充网络部分的其他知识点 1).复位报文段 在某些特殊条件下, TCP 连接的一端会向另一端发送携带 RST 标志的报文段,即复位报文段,已通知对方…

【通知】“长三角档案数字资源长期保存与数据安全治理”专题培训

关注我们 - 数字罗塞塔计划 - 为加强长三角地区档案数字资源长期安全管理,提升档案管理人员档案信息化水平和实务技能,推动长三角地区档案数字化转型向纵深发展,上海市档案服务和教育中心将于近期举办“长三角档案数字资源长期保存与数据安全…

【裸机装机系列】16.kali(ubuntu)-安装linux和win双系统-重装win11步骤

推荐阅读: 1.kali(ubuntu)-为什么弃用ubuntu,而选择基于debian的kali操作系统 注意: 要先装windows,再装linux,不然linux的启动分区会被覆盖掉。为什么双系统要先装windows呢? 在一个新硬盘上&#xff0…

旺店通ERP集成金蝶K3(金蝶K3主供应链)

源系统成集云目标系统 金蝶K3介绍 金蝶K3是一款ERP软件,它集成了供应链管理、财务管理、人力资源管理、客户关系管理、办公自动化、商业分析、移动商务、集成接口及行业插件等业务管理组件。以成本管理为目标,计划与流程控制为主线,通…

原生APP与其他类型APP的对比

移动应用主要分为原生APP、混合APP和Web APP三种。每种类型都有其独特的优势和局限性。 原生APP 优点:性能卓越: 直接调用设备硬件,运行流畅,用户体验最佳。用户界面定制化程度高: 可以充分利用平台的UI组件&#xff…

SD卡认识——SDIO协议入门与实践(一)

最初是三年前,接手开发sdio裸机驱动和测试用例的工作,内容很多,一开始就是各种在官网、各大论坛以及开源的驱动和例程里学习,简单浏览了sdio控制器、SD卡、MMC、SDIO卡等协议,然后就是开干;鉴于sdio协议还是…

Java GC:GC算法、GC回收器、GC日志

文章目录 基本概念垃圾回收类型垃圾回收算法垃圾回收器 VM参数设置控制vm参数内存参数GC参数 GC实例分析 基本概念 垃圾回收类型 Minor GC:对新生代进行的垃圾回收,所以也叫Young GCMajor GC:对老年代进行的垃圾回收,所以也叫Old GCFull GC:对整个Java…

无人机的作战指挥中心-地面站!

无人机与地面站的关系 指挥与控制:地面站是无人机系统的核心控制部分,负责对无人机进行远程指挥和控制。无人机根据地面站下达的任务自主完成飞行任务,并实时向地面站反馈飞行状态和任务执行情况。 任务规划与执行:地面站具备任…

Laravel部署后,CPU 使用率过高

我在部署 Laravel 应用程序时遇到严重问题。当访问量稍微大一点的时候,cpu马上就到100%了, 找了一大堆文档和说明,都是说明laravel处理并发的能力太弱,还不如原生的php。最后找到swoole解决问题。 1、php下载swoole插件&#xff0…

智能监控,守护绿色能源:EasyCVR在电站视频监控中心的一站式解决方案

随着科技的飞速发展,视频监控技术在社会安全、企业管理及智慧城市建设等领域中扮演着越来越重要的角色。特别是在电力行业中,电站作为能源供应的关键设施,其安全性和稳定性至关重要。传统的人工监控方式已难以满足现代电站复杂多变的运行需求…