Re: [問題] 到底lib是什麼呢?

看板C_and_CPP (C/C++)作者 (星空下的鮪魚)時間16年前 (2009/04/30 10:05), 編輯推噓4(407)
留言11則, 4人參與, 最新討論串3/3 (看更多)
※ 引述《QQ29 (我愛阿蓉)》之銘言: : 我沒有自己寫過lib或是dll : 而我一直有自以為對的一個觀念就是 : .h和.cpp .cpp可以換成lib : lib就是.cpp , 實作的包裝.... 但其實要我解釋 lib到底是什麼我也不知道 : 他先把CPP 作成lib 是把cpp檔案textfile 作了什麼事呢?? : 我試著google一下 看比較general解釋 都不太解釋我想問的這個部份 : 想請版友給點指點~~ : 然而dll更是我完全沒碰過的東西 : 我只知道我執行程式時 要把該用的dll擺好 而dll在compile time是沒有關係的.. : 也是google了一下 知識+之類的 解釋的讓我更不懂了 : 有提到什麼許多程式共用的XXXXX (不知道是什麼...) : 那如果共用 不會造成race condition或是什麼之類的怪事情嘛? : 一般寫程式 我就沒有碰過真的需要自己寫dll這件是 導致我真的對這一無所知 : 只知道她好像是run time程式會去跟他作某些事情.... : 請大家給一點正確的觀念好嘛..... : 是什麼必要 會需要去寫dll呢? : 謝謝各位 我所知道的是連結有靜態連結和動態連結 動態連結的話,需要的是.dll, 然後用LoadLibrary()和GetProcAddress()取的function pointer, 之後就可以用了。 麻煩在你必須知道這個function的參數, 而且要另外寫好幾個function pointer, 然後一個一個對應過去… 靜態連結的話,需要.h .lib .dll 編譯的時候,debug版的lib要對應到相對的.dll。release版的lib要對應到.dll 然後要include那份.h檔。 在VC下,就是要設定一下liker裡面的內容吧,把需要的.lib加上去 或是用#pragma comment(lib,"xxx.lib") 說會用到哪一個.lib 而.dll必須放在project能找的到的路徑下。 -- 或許人生是一段整合內在的自己 並尋求人間一點真情的過程吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.59.242

04/30 16:36, , 1F
請教一下 dll在編譯的時候真的需要嘛? 我遇到的都是編完再擺
04/30 16:36, 1F

04/30 16:36, , 2F
到exe的位置就可以了?
04/30 16:36, 2F

04/30 17:01, , 3F
你說的是 dynamic loading / dynamic linking
04/30 17:01, 3F

04/30 17:01, , 4F
而不是 dynamic linking / static linking 的不同
04/30 17:01, 4F

04/30 18:50, , 5F
編譯的時候需要的倒是dll的interface,如header
04/30 18:50, 5F

04/30 20:19, , 6F
little大 你說的"你" 是說我還是原波@@ 不太了解
04/30 20:19, 6F

04/30 21:08, , 7F
我指這篇原po
04/30 21:08, 7F

05/01 14:43, , 8F
我很少用 MS 的編譯環境,但印象中編譯期至少要 .LIB,如
05/01 14:43, 8F

05/01 14:44, , 9F
果你用的是 dynamic "linking" 的話。
05/01 14:44, 9F

05/01 14:44, , 10F
上上行打錯,不是編譯期是連結期。
05/01 14:44, 10F

05/01 14:45, , 11F
不管動態靜態,如果不是 dynamic loading 印象都要 .lib
05/01 14:45, 11F
文章代碼(AID): #19-GU7dR (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
文章代碼(AID): #19-GU7dR (C_and_CPP)