VS2019 静态/动态库导入导出代码片段【snippet】

VS不愧是宇宙最强大的IDE咯,定义snippet以后,妈妈再也不怕我敲代码敲坏键盘了就可以很方便的生成并转移一个,而不必修改头文件
不过这还需要在项目输出上做做修改,规则差不多是$name$ [d] [_x64] .lib|dll,比如mySock.libmySock.dll

静态库的导入导出

#ifndef _LIB	// 静态库宏
#ifdef _WIN64

#ifdef _DEBUG
#pragma comment(lib,"lib/MY_LIBd_x64.lib")
#else
#pragma comment(lib,"lib/MY_LIB_x64.lib")
#endif	// _DEBUG

#else

#ifdef _DEBUG
#pragma comment(lib,"lib/MY_LIBd.lib")
#else
#pragma comment(lib,"lib/MY_LIB.lib")
#endif	// _DEBUG

#endif	// _WIN64

#endif	// MY_LIB_EXPORTS

LIBEXPORT

LIB

动态库的导入导出

#ifdef MY_DLL_EXPORTS	// DLL导出宏
#define MY_DLL_API __declspec(dllexport)	// 导出使用
#else
#define MY_DLL_API __declspec(dllimport)	// 导入使用
#ifdef _WIN64

#ifdef _DEBUG
#pragma comment(lib,"lib/MY_DLLd_x64.lib")
#else
#pragma comment(lib,"lib/MY_DLL_x64.lib")
#endif	// _DEBUG

#else

#ifdef _DEBUG
#pragma comment(lib,"lib/MY_DLLd.lib")
#else
#pragma comment(lib,"lib/MY_DLL.lib")
#endif	// _DEBUG

#endif	// _WIN64

#endif	// MY_DLL_EXPORTS

动态库的函数定义前加上MY_DLL_API就可以实现导出或导入

DLLEXPORT

DLL

再进一步

以上的库要求$name$ [d] [_x64] .lib|dll的导出格式,而目前我还不清楚怎么可以通过宏指令形式修改目标文件名,只能手动修改,这是其中比较棘手的一个问题。

原文地址:https://www.cnblogs.com/that-boy/p/12307790.html