[問題] .h宣告和定義分開的理由

看板C_and_CPP作者 (Shizuru)時間15年前 (2009/04/07 10:12), 編輯推噓2(2015)
留言17則, 4人參與, 最新討論串1/4 (看更多)
小弟寫程式也三年了 最近開始邁入小型的專案開發 但是我看了很多專案的程式碼 大多都是將.h檔的定義和宣告分開來放 我看過較多的說法是說不想將實作公開出來 但是我覺得這個說法似乎有些微的牽強 所以想請問一下各位先進,真正分開做的理由是甚麼? 還請各位指點一番。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.185.202

04/07 10:41, , 1F
CPP+HPP -> DLL(LIB)+HPP
04/07 10:41, 1F

04/07 10:51, , 2F
同一樓
04/07 10:51, 2F

04/07 11:17, , 3F
想請教一下,編成DLL檔的差異和沒有編成DLL差別在哪裡?
04/07 11:17, 3F

04/07 11:38, , 4F
這答案可能跟你問的不太一樣了
04/07 11:38, 4F

04/07 11:39, , 5F
編成dll可以讓多個程式共用一份函式實體。
04/07 11:39, 5F

04/07 11:40, , 6F
對於應用程式更新,你只需要發佈需要更新的dll。
04/07 11:40, 6F

04/07 11:41, , 7F
不需要整個專案重新編譯就可以改變部分程式區塊
04/07 11:41, 7F

04/07 11:42, , 8F
當然如果你更新dll時有更改過header的結構,那麼header也要
04/07 11:42, 8F

04/07 11:42, , 9F
跟著發佈 才不至於造成對方擁有dll 卻無法寫入有效位址
04/07 11:42, 9F

04/07 11:48, , 10F
這樣我大概知道了,那想請教題外一點的東西
04/07 11:48, 10F

04/07 11:48, , 11F
就是我要如何在程式中引用dll檔? (環境DEVC++)
04/07 11:48, 11F

04/07 12:16, , 12F
在linker的地方填上該dll所發佈的.lib檔
04/07 12:16, 12F

04/07 12:17, , 13F
或者填上dll的檔名也可以(DevC可以這樣做 MSVC不行)
04/07 12:17, 13F

04/07 12:18, , 14F
或者用LoadLibrary (WinAPI),或者dlopen
04/07 12:18, 14F

04/07 12:27, , 15F
感謝c大和s大的解說
04/07 12:27, 15F

04/07 12:51, , 16F
實作沒有公開出來,所以實作可以隨需要改變~~
04/07 12:51, 16F

04/07 12:53, , 17F
而給別人的header因為沒有改變,所以別人不會有事~~
04/07 12:53, 17F
文章代碼(AID): #19shPpYY (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19shPpYY (C_and_CPP)