線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:6682
推到 Plurk!
推到 Facebook!

想把程式改為build with runtime packages重新編譯,但如何知道要附上那些bpl ?

 
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-29 02:22:39 IP:220.131.xxx.xxx 訂閱
1.想把程式改為build with runtime packages重新編譯以縮小.exe之大小,但如何知道要附上那些bpl ?我的delphi是7.0版,程式有用到indy(9.0版),quickreport(4.06版),ado,及一般vcl元件 ?
2.縮小後之.exe,執行起來會比較快嗎?
3.那些bpl 應放置在那個目錄中呢?放置在那個目錄比較好?
4.縮小後之.exe穩定性會不會比較差呢?

pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-29 11:47:34 IP:61.219.xxx.xxx 未訂閱
> 1.想把程式改為build with runtime packages重新編譯以縮小.exe之大小,但如何知道要附上那些bpl ?我的delphi是7.0版,程式有用到indy(9.0版),quickreport(4.06版),ado,及一般vcl元件 ?
把程式丟到沒有安裝 Delphi 機器上執行, 看它說缺什麼檔案

>2.縮小後之.exe,執行起來會比較快嗎?
不一定, 因為要執行的某些程式碼是在別的檔案了

>3.那些bpl 應放置在那個目錄中呢?放置在那個目錄比較好?
和自己 exe 相同的目錄

>4.縮小後之.exe穩定性會不會比較差呢?
不會



------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-29 12:31:02 IP:125.225.xxx.xxx 未訂閱
在delphi/bin目錄裡面有TDUMP.EXE,這個命令列檔案是可以將某個執行檔所需要的dll檔列出來從命令列下指令tdump.exe -em 你的執行檔 > C:\output.txt 輸出的結果就像 Turbo Dump Version 5.0.16.12 Copyright (c) 1988, 2000 Inprise Corporation Display of File C:\PROJECT1.EXE IMPORT: vcl60.bpl='__fastcall Consts::initialization()' IMPORT: vcl60.bpl='__fastcall Consts::Finalization()' IMPORT: vcl60.bpl='__fastcall Graphics::initialization()' ... IMPORT: vcl60.bpl='__fastcall Controls::TControl::~TControl()' IMPORT: rtl60.bpl='__fastcall System::initialization()' IMPORT: rtl60.bpl='__fastcall System::Finalization()' IMPORT: rtl60.bpl='__fastcall System::UnregisterModule(System::TLibModule *)' ... IMPORT: CC3260MT.DLL='operator delete(void *)' IMPORT: CC3260MT.DLL='_CatchCleanup()' IMPORT: CC3260MT.DLL='_InitTermAndUnexPtrs()' ... 就可以知道需要vcl60.bpl,rt160.bpl,CC3260MT.DLL等檔案只要將這些檔案放在執行檔相同的目錄底下就可以執行 以下是題外話但使用者會覺得你的程式怎麼這麼大,居然有好幾MB的大小,不像VC,VB寫出來的程式只有幾十KB而已我建議將這些檔案放在C:\WINNT\system32\底下,只要安裝一次,以後就只要發布幾十KB的執行檔就可以了這觀念在我發表的另外一篇文章中提到,你可以作為參考  http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=68465
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-01-30 01:56:52 IP:220.131.xxx.xxx 訂閱
bugmans你好:
照你說的去試只跑出 gdi32.dll,user32.dll ...但專屬delphi之bpl不見半個,我的delphi 是7.0 pro,不信你可試試看

pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-01-30 07:40:03 IP:203.204.xxx.xxx 未訂閱
實際測試比較重要
拿去別台 PC 測試, 是否真的只要它列出的檔案, 還是會警告說要某某 bpl ?
===================引 用 文 章===================

bugmans你好:
照你說的去試只跑出 gdi32.dll,user32.dll ...但專屬delphi之bpl不見半個,我的delphi 是7.0 pro,不信你可試試看

------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-01-30 09:53:56 IP:125.225.xxx.xxx 未訂閱
你是不是將build with runtime packages給取消了,我隨便拉幾個indy和ADO的元件放到Form1上
編譯出來的執行檔大小也才33.5KB,還附上tdump出來的結果,需要rtl70.bpl,vcl70.bpl,adortl70.bpl,dbrtl70.bpl等檔案

http://delphi.ktop.com.tw/download.php?download=upload/45bea404a9d54_test.zip

ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-01-30 19:31:54 IP:220.131.xxx.xxx 訂閱
bugmans你好:
謝謝你,我試出來,但一個怪事出現,那個build with runtime packages程式隨時都正常compile,其他的程式都不能compile,有幾支程式錯誤訊息如下:
project : c:\my programs\project1.exe raised too mamy consective exception : 'floating point check at 0x0147ee10' proces stopped . use step or run to continue
有幾支程式錯誤訊息如下:
project : c:\my programs\project1.exe faulted with message : 'access violation at 0x7c92edcd : write of address 0x00030ffc'. proces stopped . use step or run to continue
編譯會產生之錯誤訊息似乎與程式包含之元件有關,這下該怎麼辦,除了那個build with runtime packages程式可以compile,所有程式都不能compile,我是中毒還是delphi設定之問題呢?

j58651118
一般會員


發表:0
回覆:1
積分:0
註冊:2006-07-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-02-05 21:22:56 IP:220.132.xxx.xxx 訂閱
感謝大大提供的方式
真的看的出用的到哪些檔
不過我找不到這些檔放哪
><
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-02-05 21:36:05 IP:203.204.xxx.xxx 未訂閱
有檔案名稱, 可以搜尋整個 HD, 不相信找不到
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-02-05 21:36:20 IP:125.224.xxx.xxx 未訂閱
這些檔案大都放在delphi\bin或者是C:\WINNT\system32底下
你可用windows檔案搜尋找*.bpl的位置在哪裡
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-02-06 20:40:54 IP:220.131.xxx.xxx 訂閱
bugmans你好:
你說的方法雖然可列出須要之.bpl,但仍漏列一個bpl,像我的程式就漏列一個bpl,那是vclx70.bpl,這是我在別的電腦安裝測試才知道,bugmans你可曾發生過類似情況呢?
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-02-06 21:25:57 IP:125.225.xxx.xxx 未訂閱
我最常用的是BCB6,我沒有寫過Delphi程式,我沒有遇過這類問題
建議用其他的軟體dump執行檔看看有沒有出現vclx70.bpl
http://delphi.ktop.com.tw/board.php?cid=30&fid=72&tid=24605
如VC的dumpbin或者是Dependency Walker 2.2
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#13 引用回覆 回覆 發表時間:2007-02-07 02:02:37 IP:220.131.xxx.xxx 訂閱
bugmans你好:
VC的dumpbin或者是Dependency Walker 2.2,不是只能讀出一個dll中的函數名嗎?它能讀出一個exe有用到那些bpl嗎?

===================引 用 文 章===================
我最常用的是BCB6,我沒有寫過Delphi程式,我沒有遇過這類問題
建議用其他的軟體dump執行檔看看有沒有出現vclx70.bpl
http://delphi.ktop.com.tw/board.php?cid=30&fid=72&tid=24605
如VC的dumpbin或者是Dependency Walker 2.2
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#14 引用回覆 回覆 發表時間:2007-02-08 22:53:50 IP:125.224.xxx.xxx 未訂閱
不知道你有沒有實際下載Dependency Walker開啟exe檔看看能否找相依的dll
還是看到文章討論是dll就認定exe無法顯示
我以這個檔案為例
http://delphi.ktop.com.tw/download.php?download=upload/45bea404a9d54_test.zip
Dependency Walker出現的畫面
使用VC的dumpbin.exe,指令為DUMPBIN.EXE /imports Project1.exe > output.txt
到output.txt看結果

假如你有VB的話我再補充一個
http://www.planet-source-code.com/vb/scri pts/ShowCode.asp?txtCodeId=7390&lngWId=1
scri pts全形空白去掉


視窗的標題也是exe檔,圖的左下角則顯示需要哪些dll檔
或者你將有問題的檔案上傳上來,我試試看是否少列了vclx70.bpl
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#15 引用回覆 回覆 發表時間:2009-07-28 12:08:23 IP:210.64.xxx.xxx 訂閱
vclx70.bpl 經常會相依在其他的bpl上。dependency後會找到exe或dll所相依的bpl。但這些bpl其實還有可能相依到其他的bpl。故需展開樹狀圖再l往裡查。以bcb6中的sample元件,會使用到bcbsmp60.bpl,而這個bpl又會相依到vclx60.bpl (這就是一直查不到的原因的一種)。
或者它也會出現在下方module^ 那裡面,但很難看就是,含了一堆的系統預設dll…

剛看到一個地方可以比較精準的看出少的borland檔案。即,在下方 symbols^的欄位按一下排序…會發現這些檔都屬於 none,就通通找到了!
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2009-07-28 14:16:41, 註解 無‧
aftcast 重新編輯於 2009-07-28 14:21:01, 註解 補使用symbols欄位查找的快速方式‧
系統時間:2024-11-21 19:14:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!