VS不愧是宇宙最强大的IDE咯,定义
snippet
以后,妈妈再也不怕我敲代码敲坏键盘了就可以很方便的生成并转移一个库
,而不必修改头文件
。
不过这还需要在项目输出上做做修改,规则差不多是$name$
[d]
[_x64]
.lib|dll
,比如mySock.lib
、mySock.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
动态库的导入导出
#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
就可以实现导出或导入
再进一步
以上的库要求$name$
[d]
[_x64]
.lib|dll
的导出格式,而目前我还不清楚怎么可以通过宏指令形式修改目标文件名,只能手动修改,这是其中比较棘手的一个问题。