作者godman362 (Shizuru)
看板C_and_CPP
标题[问题] .h宣告和定义分开的理由
时间Tue Apr 7 10:12:00 2009
小弟写程式也三年了
最近开始迈入小型的专案开发
但是我看了很多专案的程式码
大多都是将.h档的定义和宣告分开来放
我看过较多的说法是说不想将实作公开出来
但是我觉得这个说法似乎有些微的牵强
所以想请问一下各位先进,真正分开做的理由是甚麽?
还请各位指点一番。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.64.185.202
1F:推 chrisdar:CPP+HPP -> DLL(LIB)+HPP 04/07 10:41
2F:→ sunneo:同一楼 04/07 10:51
3F:→ godman362:想请教一下,编成DLL档的差异和没有编成DLL差别在哪里? 04/07 11:17
4F:→ sunneo:这答案可能跟你问的不太一样了 04/07 11:38
5F:→ sunneo:编成dll可以让多个程式共用一份函式实体。 04/07 11:39
6F:→ sunneo:对於应用程式更新,你只需要发布需要更新的dll。 04/07 11:40
7F:→ sunneo:不需要整个专案重新编译就可以改变部分程式区块 04/07 11:41
8F:→ sunneo:当然如果你更新dll时有更改过header的结构,那麽header也要 04/07 11:42
9F:→ sunneo:跟着发布 才不至於造成对方拥有dll 却无法写入有效位址 04/07 11:42
10F:→ godman362:这样我大概知道了,那想请教题外一点的东西 04/07 11:48
11F:→ godman362:就是我要如何在程式中引用dll档? (环境DEVC++) 04/07 11:48
12F:→ sunneo:在linker的地方填上该dll所发布的.lib档 04/07 12:16
13F:→ sunneo:或者填上dll的档名也可以(DevC可以这样做 MSVC不行) 04/07 12:17
14F:→ sunneo:或者用LoadLibrary (WinAPI),或者dlopen 04/07 12:18
15F:→ godman362:感谢c大和s大的解说 04/07 12:27
16F:推 aecho:实作没有公开出来,所以实作可以随需要改变~~ 04/07 12:51
17F:→ aecho:而给别人的header因为没有改变,所以别人不会有事~~ 04/07 12:53