全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:895
推到 Plurk!
推到 Facebook!

Include unit1.cpp與Include unit1.h有什麼不一樣?

尚未結案
wb3599
一般會員


發表:32
回覆:32
積分:12
註冊:2004-02-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-08 23:43:10 IP:61.230.xxx.xxx 未訂閱
請教大家: 我原本程式是使用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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-09 02:27:17 IP:211.76.xxx.xxx 未訂閱
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的話,一樣也可以執行。
系統時間:2024-05-14 23:58:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!