討論區快速選單
知識庫快速選單
掌握Salesforce雲端管理秘訣 軟體開發過程中有哪些資安漏洞? 討論區最近新進100則主題
[ 回上頁 ] [ 討論區發言規則 ]
DLL與COM的分別
更改我的閱讀文章字型大小
作者 : markhsu(寒楓)
[ 貼文 53 | 人氣 5328 | 評價 40 | 評價/貼文 0.75 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/2/17 下午 10:03:01
請教各位先進:
            DLL與COM的最大分別到底是在哪邊??
感覺上COM與傳統的DLL功能幾乎沒啥差異.
COM能做的傳統DLL好像也都能辦到說.
有沒有哪一個優點是COM所獨有,而能拿出來說服他人捨DLL而就COM的呢??
煩請各位先進多多指教,謝謝...

這個問題之前有人問過,不過答案好像不是我想要的說....
作者 : good(估得)
[ 貼文 146 | 人氣 225 | 評價 480 | 評價/貼文 3.29 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/2/18 上午 11:04:34

>請教各位先進:
>                        DLL與COM的最大分別到底是在哪邊??
>感覺上COM與傳統的DLL功能幾乎沒啥差異.
>COM能做的傳統DLL好像也都能辦到說.
>有沒有哪一個優點是COM所獨有,而能拿出來說服他人捨DLL而就COM的呢??
>煩請各位先進多多指教,謝謝...
>
>這個問題之前有人問過,不過答案好像不是我想要的說....

基本上這個問題又點奇怪?!

DLL的訴求是,可以動態的載入執行檔,用以降低執行檔的大小(執行時期或是磁碟空間),跟可以動態的改變執行時期的行為。

COM的訴求是,封裝物件(包含記憶體跟程式碼),讓不同的編譯器可以使用相同的Binary程式碼,因為物件已經封裝成特定的格式,所以,可以做到兩個不同行程間共享相同的物件,甚至兩個不同機器共享相同的物件。

COM是一個規則,DLL是一個手段,DLL是COM用來封裝物件的方式之一,COM也可以將物件封裝到EXE裡面,甚至是一個XML格式的檔案,COM對於DLL就好像Network  Protocol對於SOCKET,要不要用COM,只是一個要不要選擇一個現成的Protocol來實作你的系統,或是開發一個全新的Protocol,這種二選一的問題。

使用COM有兩個好處,第一,別人已經驗證過,遇到架構修正的機率微乎其微,第二,物件的Reusability高,因為別人只要照著COM的規則就可以使用開發過的元件。

當然也是有缺點,學習障礙高,開發者必須要會Win32多執行緒程式開發及C++虛擬與多型的經驗,才有辦法理解COM規範的意義。

要不要使用COM是設計的問題,而不是,要不要使用這個工具的問題,如果設計上有需要,跨行程共享(相同)物件,或是跟軟體供應商共享程式碼,或是跟不同編譯器的開發者共享程式碼,那你應該考慮使用COM,這樣會加快程式開發的速度。
 板主 : 徵求中
 > COM/DCOM - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - COM/DCOM - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
COM/DCOM
1 估得 490 
2 nick 120 
3 PLAYER 110 
4 天雲 100 
5 Raynor 80 
6 青衫 60 
7 60 
8 Peter.huang 50 
9 酷小毅 50 
10 Giant 50 
COM/DCOM
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.03125