Visual Studio导出动态库

devtools/2024/10/18 5:47:56/

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)
#endifextern 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.ppmy.cn/devtools/117915.html

相关文章

Pymysql cursor.execute 批量执行插入语句踩坑

注意看cursor.execute()的官方注释: 括号里可以不带参数,如果要带参数,必须要是tuple,list 或者dict类型 而在我原来的错误代码里: 我将list类型的values又转换成了str,用逗号连接,传进了execu…

EasyExcel将数据库里面的数据生成excel文件

EasyExcel官方文档 1.在model模块导入依赖 <!-- 生成报表--> <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>4.0.3</version> </dependency> 2.修饰实体类 package…

七彩云南文化旅游网站设计与实现

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装七彩云南文化旅游网站软件来发挥其高效地信息处理的作用&am…

基于深度学习的多智能体协作

基于深度学习的多智能体协作是一种通过多个智能体相互协作完成复杂任务的框架&#xff0c;利用深度学习技术来优化智能体之间的合作与决策过程。多智能体系统广泛应用于自动驾驶、机器人群体、游戏AI、资源调度、无人机编队等领域&#xff0c;其中每个智能体通常具有自主性&…

建立分支提交代码

git分支 git branch 产看当前分支 git branch -a 查看所有分支 git checkout 分支名 切换分支 git checkout -b 分支名 建立分支&#xff08;仅仅是在本地建立了&#xff0c;并没有关联线上&#xff09; git push --set-upstream origin 分支名 把本地分支推到先线上 gti add …

设计模式之享元(Flyweight)模式

前言 面向对象很好地解决了 “抽象” 的问题&#xff0c;但是不可避免的要付出一定的代价。对于通常情况来讲&#xff0c;面向对象的成本大都可以忽略不计。但是某些情况&#xff0c;面向对象所带来的成本必须谨慎处理 具体需要自己根据需求去评估 定义 “对象性能” 模式。运用…

【WebLogic】WebLogic 11g 控制台模式下安装记录

WebLogic 11g的安装有三种方式&#xff1a; 1&#xff09;GUI图形化模式&#xff1b; 2&#xff09;控制台模式&#xff1b; 3&#xff09;静默模式&#xff1b; 下面为大家展示下控制台模式下的安装过程记录&#xff0c;整个安装过程大部分都是回车&#xff0c;仅在【接收…

无人机表演中其关键功能有哪些!

1. 集群控制与协同作业 高效通信系统&#xff1a;通常包括无线通信技术&#xff0c;如Wi-Fi、Zigbee或专用的无线频段&#xff0c;以实现无人机与地面控制站、无人机之间的实时数据交换。 集群控制算法&#xff1a;通过先进的集群控制算法&#xff0c;确保无人机在飞行过程中…