我见很多库都喜欢类似这样定义:
#ifdef DLL_EXPORT
#define FUN_EXPORT __declspec(dllexport)
#else
#define FUN_EXPORT __declspec(dllimport)
#endif
然后把DLL_EXPORT作为一个预编译处理器。我总怀疑这个是不是多此一举,既然你要导出的,直接使用__declspec(dllexport)不就行了吗?何必搞那么多呢?我想到的唯一好处可能是代码移植,就是假如将windows代码移植到linux上,而linux上的导出关键字不是__declspec(dllexport)。到底是不是这个原因呢?
前无古人,后无来者