class _declspec(dllexport) class_name与class _declspec(dllimport) class_name的配套使用

时间:2020-12-27 11:01:44

我们在创建动态链接库时,必须要使用到class _declspec(dllexport) class_name;class _declspec(dllimport) class_name这两个东西怎样合理搭配使得两者配合最好呢?而且使用的时候更方便:

接下来我将导出一个类 add

首先看看它的头文件:

#pragma once

#ifdef ADD_EXPORTS
#define ADD_API _declspec(dllexport)#else#define  ADD_API _declspec(dllimport)#pragma comment(lib,"function_dll.lib")#endifclass ADD_API add{public:	add(void);	~add(void);	static int myadd(int a, int b)	{		return a+b;	}};
class _declspec(dllexport) class_name与class _declspec(dllimport) class_name的配套使用
源文件:

#ifndef ADD_EXPORTS
#define ADD_EXPORTS//这个宏的名称与头文件中要一致
#endif


#include "add.h"
add::add(void)
{
}
add::~add(void)
{
}

创建这个动态链接库的一个妙处在于使用:class _declspec(dllexport) class_name与class _declspec(dllimport) class_name ,配套使用实现了该类是导出还是导入,这样在调用的时候就不必再去申明了