將自己寫的經常複用的類封裝成動態庫的方法

一劍平江湖發表於2015-04-01

C++的開發不像c#那麼給力,基本上引用下就可以了,它的步驟比較繁瑣。
第一步:製作動態庫


     利用VC新建工程時選擇win32 dynamic-Link Library(空的工程),然後新增標頭檔案和cpp檔案。假設你要封裝的類的名成是TransferFunction,新增標頭檔案


TransferFunction.h和TransferFunction.cpp到工程中。並將TransferFunction.h修改成: 


class __declspec(dllexport) TransferFunction
{
      ...
}
vc2010中已經新增上了__declspec(dllexport)的自定義巨集比較省事。


這樣編譯完就會產生TransferFunction.dll和TransferFunction.lib兩個檔案。


第二步:如何使用這個dll
      當已經生成dll後,有兩種方法可以在其它程式中呼叫dll中的類和成員函式:


方法一:


      1)把TransferFunction.dll和TransferFunction.lib複製到呼叫程式的執行路徑下,注意不是debug路徑下。


      2)在project->setting->link裡新增TransferFunction.lib(或者用#pragma comment(lib, "TransferFunction.lib") )


      3)把TransferFunction.h中的__declspec(dllexport)改成__declspec(dllimport)


然後複製到呼叫程式的執行路徑下。


      4)最後在主程式中就可以通過包含TransferFunction.h來使用TransferFunction類和它的成員函式。 
方法二(推薦):
       在方法一中,你每次建立一個工程都需要把 TransferFunction.dll,TransferFunction.lib,TransferFunction.h三個檔案拷貝到工程裡面 去,事實上這隻發揮了dll對類的程式碼保護的功能,並沒有多大的減輕程式設計人員的工作量,下面的方法可以減少程式設計人員的工作量,具體步驟:
1:將TransferFunction.dll扔到windows/system32下
2:將.TransferFunctionlib扔到VC的lib目錄裡
3:將方法一中的TransferFunction.h扔到VC的include目錄裡
4:同方法一的最後一步。
         以後你就可以像使用Opengl的glut、glui等庫一樣使用你自己封裝的一個經常複用的類了。

相關文章