我的網誌清單

2013年7月15日 星期一

C++ DLL 設計

最近因為需要用到 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 物件





沒有留言:

張貼留言