包成Library,DLL,API 有何不同 |
答題得分者是:dllee
|
licheer
一般會員 發表:23 回覆:20 積分:8 註冊:2007-08-19 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
你的問題應該只有 .lib 與 .dll 的差別。
.lib 如您所說,用 #include Header.h 就可以用它的 API,當然,這個 .lib 也要加入專案才行。 .dll 有兩種使用方式
在實用上的差別是,如果使用 Library.lib,則在此 Library 內有函式內容修改時(函式介面不變),主程式就需要 rebuild 才能使用到新修改的函式。但如果使用 Dll.dll,在 Dll 內有函式內容修改時(函式介面不變),主程式不需要 rebuild,就可以直接使用到新修改的 Dll 函式,不論使用以上兩種的那一種方式鏈結 .dll 都一樣。這也是使用 .dll 的最大優點。 當然,這也是 .dll 的缺點之一,在上述中,我提到「函式內容修改時(函式介面不變)」,在函式介面改變時,主程式是需要 rebuild 或修改程式碼才能用的,而 .dll 的問題在於當同一 .dll 改版升級又已有多個已開發好的程式使用它時,每個開發程式在開發時可能使用不同版本的 .dll,這時,如何載入正確的 .dll 就是一個問題,這也是所謂的 DLL Hell。 還好的是,大部分的系統其實沒有像 Windows 那麼複雜,如果只是用的自己的 .dll,自己知道有以上使用上的優缺點即可順利解決版本衝突的問題。
------
http://www.ViewMove.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |