最近因為需要用到 DLL 的部份 , 也因為之前我有用 OPENGL 寫過一套繪圖的 LIB
但因為沒有把他弄成 DLL 也一直想找時間把他再整理一次 , 所以這次思考了一下怎麼
設計 DLL , 當時在寫那套繪圖 LIB 時, 只是想找如何把東西做出來, 並沒有去思考如何
寫的更有架構 , 也因為當時只有我一人在做開發 , 但如果多人開發 , 那個東西會有問題
底下是我去找一些文章,然後整理過學到的東西
1.開放介面給使用者 , 然後提供一個入口 , 去實做這個物件再給使用者,
這個入口要請使用者傳入版本資訊 , 如果這個DLL 版本不對,就回傳失敗
這是給使用者的 .h 檔
class TESTDLL
{
public :
virtual int CALL ADD(int value) = 0;
};
extern "C"{ EXPORT TESTDLL* CALL TestCreate(int ver); }
2.然後我們在 TestCreate 的程式是
TESTDLL* CALL TestCreate(int ver)
{
/*這裡要判斷版本對不對*/
return (TESTDLL*) TESTDLL_Impl::_Interface_Get();
}
然後 _Interface_Get 再去產生我們實際的 DLL 物件
沒有留言:
張貼留言