Re: [問題] DLL之間互相引用的問題

看板C_and_CPP (C/C++)作者 (無)時間16年前 (2010/01/02 21:55), 編輯推噓2(2011)
留言13則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《photon3108 (John)》之銘言: : 假設有兩個 Library, A 和 B, 要各自做成 DLL, : 而 B 的 Class2 會繼承到 A 的 Class1,在編譯 : 及聯結 B 的時候,請問一定要給 a.lib (做 : a.dll 時一起做出來的) 嗎? 需要放在一起 : 編譯及聯結 b.dll 時,所需資料除了 A 的 : Class1.h 之外,還會缺哪些資料,所以才需要 : a.lib 呢? B沒有定義class 1的底層, 所以需要a.lib (需要知道連結的方式) 當然也可以自行透過LoadLibrary來自行實作, 這樣不需要a.lib (但仍需要a.dll) 不過這是件麻煩的事情, 還是交給compiler/linker去弄就好了... : 原本以為,應該只需要 Header File 而已,僅只 : 有在引用 A 和 B 做成的 app.exe 才需要 a.lib : 及 b.lib,但好像不是這樣子。 : 謝謝。 : PS.同一個VC++。 header通常只定義簽名的方式, 不包含任何實作的內容 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.10.48

01/02 23:22, , 1F
class 1的底層是什麼呢?,我試著把A、B變成靜態連結時
01/02 23:22, 1F

01/02 23:23, , 2F
,只有用到Header File,這是動態連結特有的嗎?
01/02 23:23, 2F

01/03 00:33, , 3F
你自己都說靜態連結了... 不過真的只要header檔嘛?
01/03 00:33, 3F

01/03 08:14, , 4F
其實整個IDE我都設定到有點混亂了,不是很確定,但將
01/03 08:14, 4F

01/03 08:16, , 5F
A、B做成Static link library時,有觀察到B聯結或不聯
01/03 08:16, 5F

01/03 08:17, , 6F
結到A,好像都不會造成error or warning,不過library
01/03 08:17, 6F

01/03 08:19, , 7F
B有聯結時,檔案較大。
01/03 08:19, 7F

01/03 08:21, , 8F
推文第一行寫的靜態聯結,應該寫成static link library
01/03 08:21, 8F

01/03 08:32, , 9F
後來我把a.lib點開來看,看到class name, function
01/03 08:32, 9F

01/03 08:33, , 10F
name, 還有一些數字,這些寫的是dynamic link library
01/03 08:33, 10F

01/03 08:35, , 11F
對應的class位置和function位置嗎?,為什麼不把這些寫
01/03 08:35, 11F

01/03 08:38, , 12F
在a.dll裡面,而需另外放在a.lib呢?,linux的.so好像
01/03 08:38, 12F

01/03 08:40, , 13F
沒有另外的.lib,是不是就不必在做B的dll時引用a.dll呢
01/03 08:40, 13F
文章代碼(AID): #1BFr1KDF (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BFr1KDF (C_and_CPP)