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

用 Dcc32 Compile D6 程式時...

尚未結案
derekyau
一般會員


發表:2
回覆:5
積分:1
註冊:2004-11-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-22 15:42:46 IP:61.30.xxx.xxx 未訂閱
我在用 Dcc32 Compile D6 程式時,有出現 Error 的訊息,執行檔也有 Compile 出來, 但是我想要有出現 Error 訊息時, 就不要把執行檔 Compile 出來。 謝謝
shaofu
高階會員


發表:5
回覆:136
積分:103
註冊:2003-01-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-23 10:20:55 IP:210.243.xxx.xxx 未訂閱
引言: 我在用 Dcc32 Compile D6 程式時,有出現 Error 的訊息,執行檔也有 Compile 出來, 但是我想要有出現 Error 訊息時, 就不要把執行檔 Compile 出來。 謝謝 < face="Verdana, Arial, Helvetica"> complier 與 linker 的關係清楚嗎 > . >
derekyau
一般會員


發表:2
回覆:5
積分:1
註冊:2004-11-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-23 13:55:10 IP:61.30.xxx.xxx 未訂閱
引言:complier 與 linker 的關係清楚嗎 > . > < face="Verdana, Arial, Helvetica"> 我是在Dos下, 用 Dcc32.exe 去 Compile D6 的程式, 會出現 Error: File not found: 'SwDBDM.DFM', 類似這種 Error, 執行檔會 Compile 成功, 但是去執行時會失敗。 因我有幾百支 >。
shaofu
高階會員


發表:5
回覆:136
積分:103
註冊:2003-01-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-24 09:25:51 IP:210.243.xxx.xxx 未訂閱
引言: 我是在Dos下, 用 Dcc32.exe 去 Compile D6 的程式, 會出現 Error: File not found: 'SwDBDM.DFM', 類似這種 Error, 執行檔會 Compile 成功, 但是去執行時會失敗。 因我有幾百支 >。 < face="Verdana, Arial, Helvetica"> 這樣真的蠻奇怪的, 我建議還是直接去查 Error 的地方, 為甚麼會產生 Error 另外想問一下你的批次檔是怎麼寫的? 是直接
derekyau
一般會員


發表:2
回覆:5
積分:1
註冊:2004-11-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-24 10:05:32 IP:61.30.xxx.xxx 未訂閱
引言:這樣真的蠻奇怪的, 我建議還是直接去查 Error 的地方, 為甚麼會產生 Error 另外想問一下你的批次檔是怎麼寫的? 是直接 >< face="Verdana, Arial, Helvetica">因為 D3 檔案的路徑, 跟 D6 檔案的路徑不同, ex: D3 的檔案SWDBDM in '..\..\..\template\SWDBDM.pas' {SWDM: TDataModule} D6 的檔案SWDBDM in '..\..\template\SWDBDM.pas' {SWDM: TDataModule} 以致於我在 Compile D6 時會產生 Error (Error: File not found: 'SwDBDM.DFM') ======================================================== 我有 > >
shaofu
高階會員


發表:5
回覆:136
積分:103
註冊:2003-01-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-24 11:41:44 IP:210.243.xxx.xxx 未訂閱
呃.. 剛試了一下, 大概知道問題了.. 因為 .dfm 最後是變成 exe 中的 resource (RCDATA), dcc32 在 complie .pas 則是產生 code, 最後再把 code (.pas) 與 resource (.dfm) link 一起整合到 .exe 中 現在看起來, 如果沒有 resource, dcc32 會顯示 error 但還是會 link 出 .exe; 但因為缺少了 resource, 一執行就當了...; 這部份有興趣可以找一些軟體來觀看執行檔的 resource 內容就會很清楚, 我是習慣用 ProjectJEDI 內的 PeViwer 來看 解決方法還是把 .dfm 放到正確的位置 (或讓 dcc32 找得到, -R?), 確定沒 error 才 release 執行檔, 這邊可以用一些 shell script 軟體來輔助自動化 至於有 error 就別 build 出 .exe 的 complier 選項, 或許是我找不到, 但我覺得很有可能是根本沒這個選項, 因為 dcc32 在 resource 上處理似乎比較弱@@ 發表人 - shaofu 於 2004/11/24 11:51:17
derekyau
一般會員


發表:2
回覆:5
積分:1
註冊:2004-11-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-24 13:50:32 IP:61.30.xxx.xxx 未訂閱
引言:呃.. 剛試了一下, 大概知道問題了.. 因為 .dfm 最後是變成 exe 中的 resource (RCDATA), dcc32 在 complie .pas 則是產生 code, 最後再把 code (.pas) 與 resource (.dfm) link 一起整合到 .exe 中 現在看起來, 如果沒有 resource, dcc32 會顯示 error 但還是會 link 出 .exe; 但因為缺少了 resource, 一執行就當了...; 這部份有興趣可以找一些軟體來觀看執行檔的 resource 內容就會很清楚, 我是習慣用 ProjectJEDI 內的 PeViwer 來看 解決方法還是把 .dfm 放到正確的位置 (或讓 dcc32 找得到, -R?), 確定沒 error 才 release 執行檔, 這邊可以用一些 shell script 軟體來輔助自動化 至於有 error 就別 build 出 .exe 的 complier 選項, 或許是我找不到, 但我覺得很有可能是根本沒這個選項, 因為 dcc32 在 resource 上處理似乎比較弱@@ 發表人 - shaofu 於 2004/11/24 11:51:17
我也試過各種參數, 但還是會 Compile 出來, 但有些參數我看不懂, 像 -F = Find error, -K = Set image base addr 之類的, 我都不知怎麼下參數; 只是我想再確定一點, 所以才上來 >
shaofu
高階會員


發表:5
回覆:136
積分:103
註冊:2003-01-07

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-11-24 17:12:17 IP:210.243.xxx.xxx 未訂閱
引言: 像 -F = Find error, -K = Set image base addr 之類的, 我都不知怎麼下參數; 只是我想再確定一點, 所以才上來 >< face="Verdana, Arial, Helvetica"> -K 是指定 Image Base Address, 一般來說是不需要修改, 可以在 Delphi Help 查到部份說明 (在 help index 打 image base address), 其中提到 dll 的情況下, 可以不要使用 defaut 值來減少 relocate 的運算時間, 至於 address 改多少較好, help 中只提供個 range, 我實際也沒試過 (之前都用 default 值), 或許請有研究的版友回答較好 ^^" -F 是 find error, 這個選項相當於 IDE 中 Search -> Find Error, 用來找出出問題的 address 是在那行 source code 發生, 不過在 dcc32 中使用的話 -f 找的是相對位置 (RVA), 所以記得要把 image base address 扣掉才找得到
derekyau
一般會員


發表:2
回覆:5
積分:1
註冊:2004-11-22

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-11-24 17:20:50 IP:61.30.xxx.xxx 未訂閱
引言:-K 是指定 Image Base Address, 一般來說是不需要修改, 可以在 Delphi Help 查到部份說明 (在 help index 打 image base address), 其中提到 dll 的情況下, 可以不要使用 defaut 值來減少 relocate 的運算時間, 至於 address 改多少較好, help 中只提供個 range, 我實際也沒試過 (之前都用 default 值), 或許請有研究的版友回答較好 ^^" -F 是 find error, 這個選項相當於 IDE 中 Search -> Find Error, 用來找出出問題的 address 是在那行 source code 發生, 不過在 dcc32 中使用的話 -f 找的是相對位置 (RVA), 所以記得要把 image base address 扣掉才找得到< face="Verdana, Arial, Helvetica"> 了解, 真的非常感謝你, 解釋的這麼詳細
系統時間:2024-06-27 0:09:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!