class _declspec(dllexport) class_name与class _declspec(dllimport) class_name的配套使用
我们在创建动态链接库时,必须要使用到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")
- #endif
- class ADD_API add
- {
- public:
- add(void);
- ~add(void);
- static int myadd(int a, int b)
- {
- return a+b;
- }
- };
源文件:
- #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 ,配套使用实现了该类是导出还是导入,这样在调用的时候就不必再去申明了