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

如何判斷專案選項中的RunTime Package...是必須要的呢?

答題得分者是:dllee
SKYSTAR
中階會員


發表:76
回覆:198
積分:64
註冊:2002-06-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-28 07:15:30 IP:218.187.xxx.xxx 未訂閱
請教各位: 在IDE-->Project Options-->Packages-->Runtime Packages-->Build with Runtime Packages這一個選項中的內容...(指那些dcp檔的名稱....) 請問: (1)這個內容是不是指在Delphi中所引用的bpl中,只要有設定成runtime package 的bpl...都會放到這個內容中呢? (這裡所指的設定,是說該bpl的專案選項中的 設定....如:designtime...runtime....both...) (2)像在delphi6中,如果有引用到design的元件,在我使用到其元件到我的專案 時,好像是必須在這個專案的選項中,勾選其build with runtime package..然 後加入designide...這樣子才可以執行該專案....否則會出現找不到proxies的 問題.... 想請教的是...如果我把專案選項中該build with runtime package內容全部 刪掉...只留了designide....在執行專案時會有問題嗎? 因為很奇怪的是...delphi在這個選項中的內容...總是有一大堆東東...真不知 道那些要留著...那些可以刪掉...?? (3)如同第二點...如果原本內容中的...vcl..等等不刪除...只在最後加入 designide.....請問將來我的專案exe檔在執行時...指在沒有安裝delphi的電 腦中去執行....是否必須將相關dcp所對應的bpl檔全部一起發佈出去呢? 還是只要有designide60.bpl就可以了呢? 對於專案中要使用runtime package的觀念不太清楚...還請多指教!! (只知道一旦用了runtime package...就必須將相關的bpl給附上...否則專案 執行檔...將會發生找不到bpl檔的問題....重點就是該如何知道我的專案中是 使用到了那些runtime package..呀!! 而那些又是不須要的呢?) Thanks!!
Rain
資深會員


發表:31
回覆:236
積分:268
註冊:2003-02-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-01 15:33:00 IP:218.5.xxx.xxx 未訂閱
(1),如果勾選 Build with Runtime Packages選項我的理解是系統假定專案運行期運行環境中有這些Packages存在(比如在運行專案的機子上也裝有Delphi),於是在編譯程式時不把相關的連接加進去,因而生成的可執行檔要小很多,當你選擇了該選項,並且運行專案的機子上沒有裝Delphi,則需要與專案一起分發這些Packages,因而通常情況下不要選中該項. (2),從Delphi6開始不分發Proxies.dcu檔, 解決由此產生問題的一個方法即如你所提的在選項中加入designide, 同樣的在執行專案時需一起分發該包檔,至於選項中的其他內容,建議刪除. (3)只要designide60.bpl即可,相反,如果你保留原來的選項中的內容,則你還需要再一起分發相應的其他檔. //以上是小弟的一點淺見,不妥之處還請多多指教
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-01 15:43:38 IP:203.204.xxx.xxx 未訂閱
■ 對於 Build with Runtime Packages 的基本認識:    1. 當 Build with Runtime Packages 是「沒有打勾」的狀態時,表示所有已安裝的 bpl 只要這個專案有用到的,都會直接加入這個專案最終的執行檔或 DLL 檔中。(我想這點大家應該都知道了)    2. 當 Build with Runtime Packages 是「打勾」的狀態時,此時必需要很小心在此欄位內所指定的 packages 是否您是準備要一起 release 給客戶或使用者的 packages,因為,只要在此欄位沒有指定到的 packages ,一樣會直接加入到最終的執行檔或 DLL 檔中。 Delphi/BCB 在預設上會將所有您所安裝的 package 都放在這個欄位內,您裝愈多的 packages ,自然內容就會愈多,不過,您可以自行修改,也可以每個專案都不同。 您可以試試將此欄位內的資料都刪除,而其效果等於「沒有打勾」,或是只留部分試試看,檔案大小很容易分辨出來。 不過,並不是每一個 package 都可以任意由此欄去除,例如 designide 這個 package,有可能它初始的方式不同(獨立的 bpl 與加到專案內應該是有些不同,可能有變數共用的問題或是有保護的 package 或是其他的問題),導致專案無法順利執行。    ■ 到底在專案中用到那些 package 呢?有那些需要給客戶或使用者呢? 如上述第 2 點,您在該欄位的都「有可能」是需要給客戶或使用者的,但只是「有可能」。 您可以很簡單的使用    tdump 專案.exe 專案.lst    或     tdump 專案.dll 專案.lst    看出在專案.exe 或 .dll 內需要那些外部檔案的支援,例如,有    Imports from VCL50.BPL    就表示,這個專案需要 VCL50.BPL 這個檔。 您也可以用 http://www.dependencywalker.com/  的 Depends.exe 看出您的專案需要那些外部的檔案。    我想,以上應該算是可以回答您的三個問題了。    沒空更新的網頁... http://coolsite.to/dllee C及指標教學,計算機概論,資訊管理導論... http://home.kimo.com.tw/dllee.tw http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
SKYSTAR
中階會員


發表:76
回覆:198
積分:64
註冊:2002-06-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-03 00:50:53 IP:218.187.xxx.xxx 未訂閱
謝謝兩位大大的解說.....    已經了解了.... 給分只能給一位...實在是兩難呀.... 想了又想,,,,只好給... > 總之...多謝兩位啦!!
系統時間:2024-11-22 22:41:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!