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

 

猜你喜欢

转载自blog.csdn.net/zsj777/article/details/142549864