用 Dcc32 Compile D6 程式時... |
尚未結案
|
derekyau
一般會員 發表:2 回覆:5 積分:1 註冊:2004-11-22 發送簡訊給我 |
|
shaofu
高階會員 發表:5 回覆:136 積分:103 註冊:2003-01-07 發送簡訊給我 |
|
derekyau
一般會員 發表:2 回覆:5 積分:1 註冊:2004-11-22 發送簡訊給我 |
|
shaofu
高階會員 發表:5 回覆:136 積分:103 註冊:2003-01-07 發送簡訊給我 |
|
derekyau
一般會員 發表:2 回覆:5 積分:1 註冊:2004-11-22 發送簡訊給我 |
引言:這樣真的蠻奇怪的, 我建議還是直接去查 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 發送簡訊給我 |
呃.. 剛試了一下, 大概知道問題了.. 因為 .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 發送簡訊給我 |
引言:呃.. 剛試了一下, 大概知道問題了.. 因為 .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 |
shaofu
高階會員 發表:5 回覆:136 積分:103 註冊:2003-01-07 發送簡訊給我 |
引言: 像 -F |
derekyau
一般會員 發表:2 回覆:5 積分:1 註冊:2004-11-22 發送簡訊給我 |
引言:-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"> 了解, 真的非常感謝你, 解釋的這麼詳細 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |