Visual Studio导出动态库

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,就保存在相应的目录下。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非ban必选

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值