//dll.h
#ifndef DLL_API _declspec(dllimport)
DLL_API int add(int a,int b);
//dll.cpp
#define DLL_API _declspec(dllexport)
#include "dll.h"
int add(int a,int b)
{
return a+b;
}
程序编译时,头文件不参与编译,源文件单独编译。
(1)对于我来说,先编译cpp文件,所以此时dll为导出函数,说明我要提供函数给客户。
(2)对于客户来说,项目中只包含头文件,故宏DLL_API没有定义,dll为导入函数,说明别人是别人提供的函数。
这种做法应该很常见。