如何在BCB下將一個大*.cpp檔分割為數個小*.cpp檔進行編譯? |
尚未結案
|
afatest
一般會員 ![]() ![]() 發表:11 回覆:18 積分:5 註冊:2003-09-24 發送簡訊給我 |
|
anpino
版主 ![]() ![]() ![]() ![]() 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
引言: 因為我的程式不斷的在擴充,為了便於管理與維護, 我想要將我的程式原始碼,分割為數個小的cpp檔來進行編譯, 故想請問各位先進與大大們 在BCB下分割程式原始碼(cpp檔)的正確方法 |
afatest
一般會員 ![]() ![]() 發表:11 回覆:18 積分:5 註冊:2003-09-24 發送簡訊給我 |
|
chtai
高階會員 ![]() ![]() ![]() ![]() 發表:68 回覆:238 積分:116 註冊:2004-05-21 發送簡訊給我 |
引言: 1. 倘若"MouseEven.cpp"與"KeyEven.cpp"皆會用到 同一個函式時,該怎麼辦?我的程式就有這種問題, 拆開放到其中一個,會導致另一個無法使用;但若 兩邊同時皆定義時,會導致重複定義?對這樣的情形 有沒有較好的規劃方法來解決? 2. 若"MouseEven.cpp"與"KeyEven.cpp"皆include 相同的表頭檔,例如"jpeg.hpp",可以嗎? 3. 還有extern函式及extern變數在使用時,有特別 的使用時機或限制嗎?afatest兄您好: 我也只是個初學者,不過以下是我在需要您所說的這功能 卻又不知該怎麼做比較好的時候,會用的做法 anyway,它會work咩 :) 您的1.2.問題 我會把這些要用到相同表頭檔或同一函式的副函式,另外寫在一個cpp裡 或是MouseEvent.cpp include KeyEvent.cpp KeyEvent.cpp 再 include jpeg.cpp 這樣應該也可以解決問題。 (反正compiler看到include就只是把那檔案一字不漏的copy到當前檔案罷了) 至於3.問題 拍謝,小弟功力不夠,不敢亂答 ^^a -- 若有說錯的地方,還請各位前輩指正
------
My Web: http://nelson.csie.us My Blog: http://blog.nelson.csie.us |
anpino
版主 ![]() ![]() ![]() ![]() 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
afatest您好:
引言: 1. 倘若"MouseEven.cpp"與"KeyEven.cpp"皆會用到 同一個函式時,該怎麼辦?我的程式就有這種問題, 拆開放到其中一個,會導致另一個無法使用;但若 兩邊同時皆定義時,會導致重複定義?對這樣的情形 有沒有較好的規劃方法來解決?您所謂的"倘若"MouseEven.cpp"與"KeyEven.cpp"皆會用到 同一個函式時",我並不清楚這個共用的函式是不是也一樣是 "MouseEven.cpp"與"KeyEven.cpp"的Unit的Form class的成員函式。 如果是相同的Form class的成員函式的話, 那麼 #include "Unit1.h" #include "MouseEven.cpp" #include "KeyEven.cpp" 是不會出現錯誤的。 如果是你自訂的函數, 那麼chtai所提供的是一個好方法, 您可以試試看。 其他方法是 1) 將這個函數宣告在 #include "MouseEven.cpp" #include "KeyEven.cpp" 之前。 2) 將含有此函數宣告的header (例如test.h)放在 #include "MouseEven.cpp" #include "KeyEven.cpp" 之前, 即 #include "Unit1.h" #include "test.h" #include "MouseEven.cpp" #include "KeyEven.cpp" 。 3) 在Uunt1.h裡#include "test.h" 。 在這裡說明一下include的觀念: 假設我們在一個cpp中#include "test.h", 編譯器在編譯時會將test.h內容複製到程式中#include "test.h" 的位置, 取代 #include "test.h" 這一串字。 (同理,所有的include xxx 都會用 xxx 檔的內容取代include xxx 這一串字。) 詳見chtai的精簡說明。 引言: 3. 還有extern函式及extern變數在使用時,有特別 的使用時機或限制嗎?沒有。 但是必須注意, 由於extern 是表示使用同一個實體變數, 所以程式任何一部分都有可能會更改到這個值。 希望... 我這麼混亂的說明沒有照成您的困擾.... |
afatest
一般會員 ![]() ![]() 發表:11 回覆:18 積分:5 註冊:2003-09-24 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |