#if defined __DRAW_IMPL__
? ? #if?(defined?_AFXDLL?&&?!defined?__STAT_WITH_DLLMFC__)
? ? ? ? ?#define?__DRAW_API?_declspec(dllexport)
? ? #else
? ? ? ? ?#define?__DRAW_API
? ? #endif?//?_AFXDLL
#else
? ? ?#if?(defined?_AFXDLL?&&?!defined?__STAT_WITH_DLLMFC__)
? ? ? ? ? ?#define?__DRAW_API?_declspec(dllimport)
? ? ?#else
? ? ? ? ? ?#define?__DRAW_API
? ? ? #endif?//?_AFXDLL
? #pragma?message("??????(Professional?User?Interface?Suite)")
? #pragma?comment(?lib,?__DRAW_LIB_NAME?)
#endif
一般在編寫(xiě)動(dòng)態(tài)鏈接庫(kù)里的類(lèi)時(shí)诈铛,經(jīng)常會(huì)定義象上面的宏霹期,主要是為了使用方便,這樣在編寫(xiě)庫(kù)時(shí)宾尚,只要定義了__DRAW_IMPL__宏,所有動(dòng)態(tài)庫(kù)中的類(lèi)都會(huì)自動(dòng)導(dǎo)出雅宾,
例如:class?__DRAW_API?A{};編譯時(shí)會(huì)被展開(kāi)成calss?_declspec(dllexport)?A{};
而在用戶(hù)使用時(shí)唆迁,因?yàn)闆](méi)有定義__DRAW_IMPL__宏,所有的類(lèi)自動(dòng)加上dllimport成為導(dǎo)入類(lèi),成為class?_declspec(import).
如果靜態(tài)鏈接時(shí)或者直接使用時(shí)后频,只要定義了__STAT_WITH_DLLMFC__宏梳庆,相當(dāng)于直接定義類(lèi),__DRAW_API被展開(kāi)成空串.