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的導出格式,而目前我還不清楚怎么可以通過宏指令形式修改目標文件名,只能手動修改,這是其中比較棘手的一個問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM