類,介面與動態鏈結庫

2021-04-17 07:08:09 字數 460 閱讀 4836

初學com程式設計的朋友通常會被類,介面與動態鏈結庫三者之間的關係弄得一頭霧水!com的實現是以dll為載體,com通過介面與客戶程式通訊,介面必須委託給類現;有的朋友是否曾經想過將類封裝到動態鏈結庫中,但dll中只有匯出函式才能被外部程式所訪問,這樣一來,有些朋友就不知該怎麼辦了。其實,只要理解了這三者之間的微妙關係,在學習com的過程中就會事半功倍,同時也能深刻體會三者相互配合的強大作用。

類與介面都是抽象的概念,是物件導向程式設計思想的產物,而動態鏈結庫則是二進位制執行檔案,由客戶程式對映到自已的虛位址空間執行!

類封裝了資料及方法,而介面則可認為是一種呼叫約定。

介面只能定義方法,但不能實現,介面必須由類來實現,類真正定義了資料,實現了方法,

在delphi的object pascal語法中,類不能多重繼承,只能由根類tobject及其子類派生;而所有的介面必須繼承iunknown介面(這一點與pascal語法並無關係),並且支援多重繼承。

動態鏈結庫與靜態鏈結庫

有人會想,動態鏈結這樣麻煩,為什麼還要用呢?這裡有乙個技術問題,對這個問題的解決直接導致了動態載入的需求。問題是有些dll只在某個windows版本中存在,或某個api只在某些windows版本中被加入指定的dll。當你使用靜態鏈結的.exe試圖在不支援的windows版本上執行時,系統會彈出系統對...

動態鏈結庫與靜態鏈結庫

原貼出處 http blog.csdn.net benny5609 archive 2008 04 17 2298998.aspxs 還有參考 http msdn.microsoft.com zh cn library 1ez7dh12 v vs.100 aspxs 首先通過乙個簡單的靜態鏈結庫的例...

靜態鏈結 庫 與動態鏈結 庫

靜態鏈結與動態鏈結 簡單的說,靜態庫和應用程式編譯在一起,在任何情況下都能執行,而動態庫是動態鏈結,顧名思義就是在應用程式啟動的時候才會鏈結,所以,當使用者的系統上沒有該動態庫時,應用程式就會執行失敗。再看它們的特點 動態庫 1.共享 多個應用程式可以使用同乙個動態庫,啟動多個應用程式的時候,只需要...