Include unit1.cpp與Include unit1.h有什麼不一樣? |
尚未結案
|
wb3599
一般會員 發表:32 回覆:32 積分:12 註冊:2004-02-11 發送簡訊給我 |
請教大家:
我原本程式是使用Include unit1.h, 結果一會直會發生
[Linker Error] Unresolved external '__fastcall ....
的錯誤, 後來, 在網路上看到有人有相同的問題, 有人是把.h改.cpp就可以了,我也照做,後來卻可以了. 但是我很不安, 為什麼這樣? #include "Unit1.h"
與
#include "Unit1.cpp"
有什麼不一樣的意義呢?
我在書店都找不到相關的書籍可以參考, 請問大家能推薦一本C Builder的書嗎?(不是講元件的使用, 而是講程式語法). 謝謝大家! 發表人 - taishyang 於 2004/08/09 00:43:59
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
wb3599 您好:
引言: 請教大家: 我原本程式是使用Include unit1.h, 結果一會直會發生 [Linker Error] Unresolved external '__fastcall .... 的錯誤, 後來, 在網路上看到有人有相同的問題, 有人是把.h改.cpp就可以了,我也照做,後來卻可以了. 但是我很不安, 為什麼這樣? #include "Unit1.h" 與 #include "Unit1.cpp" 有什麼不一樣的意義呢?理論上用include其實就是把該檔案的內容通通含括進來。而通常的習慣是把函式原型宣告定義放在.h檔中,而實作或者說函式的內容則放在.c或.cpp中。 因此您的程式如果只在這種情形下#include "Unit1.h",程式在編譯過程中,經由Unit1.h知道有外部的函式存在,所以會預先為呼叫這些函式的地方作記錄,等連結時再真正建立起相互的關係,但如果您沒有將.cpp也包含進Project的話,那在連結時(Link),因找不到函式的實作所在,於是就出現類似上述的錯誤訊息。 如果您include的是Unit1.cpp,那就沒有問題了。 其實如果在Unit1.h中,函式的實作也一併包含在裡面的話,或者簡單的說,將.cpp改成.h的話,一樣也可以執行。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |