很容易找到你所有的外部依賴關係。只需運行該程序並打開Modules info窗口。但是我怎麼能找到我所有的內部依賴關係?我知道程序保留了所有單元的列表,因爲我已經追溯了一兩次初始化代碼。但是有沒有簡單的方法可以從調試器訪問這個列表?如何在我的Delphi應用程序中找到所有單元?
回答
另一個,而是繁瑣的方式,生成地圖文件,它包含程序中使用的所有單元的列表。
你從Peganza Software看了Pascal Analyzer還是免費的限量版本Icarus?他們將創建「使用報告」,告訴你哪些模塊使用了其他模塊,這樣應該可以提供你所需要的信息。
馬克
據我所知,至少有兩種方法,你可以嘗試讓你的項目中使用的所有單位的觀點
- CTRL-SHIFT-B打開對象瀏覽器。如果我沒有弄錯,在這裏你可以看到使用過的單位。我不完全確定這種方法,並沒有德爾福可用來驗證它。
- 使用Modelmaker;模型製作者可以給你一棵樹,就像你所有的單位依賴關係一樣。請參閱Visualizing existing code部分了解更多信息。
有一個(相當老)實用工具稱爲UsgParse。它構建了項目引用的所有單元的樹視圖。
我發現了NexusDB網站副本通過 http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.thirdpartytools.general/2004-03/0231.html
來源: http://www.nexusdb.com/downloads/USGParse/USGParse_src.zip
GExperts有一個項目依賴的工具。當我試圖追蹤使用過的單位時,我已經使用過它。您無法在其中進行搜索,但可以將列表導出爲CSV文件並在其中進行搜索。這也只列出了使用部分的內容。如果您有一個未使用的模塊,它仍會顯示。
我使用GExperts項目依賴項。
使用「使用者...」時,您可以看到包含但未被任何人使用的單位。 但是你看不到包含在使用子句中的單元,當它們沒有任何實際調用的代碼時它們可以被刪除。
這裏的幫助:
項目依賴
項目依賴專家讓你看到哪個單位的特定單位使用,反過來哪個單位使用特定的單元。當這位專家被激活時,它解析所有當前項目的用例子句的源代碼,並建立一個依賴關係列表。要查看特定單元的相關性信息,請在左側窗格中單擊它。右側窗格將包含依賴信息。間接依賴關係是特定單元的使用單位使用的單位。
您可以通過單擊工具欄上的刷新按鈕隨時刷新依賴項信息,並可以通過單擊列標題對文件列表進行排序。
alt text http://www.gexperts.org/tour/project%20dependencies.png
OTOH,你也可以使用免費Peganza's ICARUS作爲一個更詳細的報告工具,但不互動......
最簡單的方法是編譯程序並檢查其.dcu
是由編譯器創建。確保安裝編譯器在一個單獨的目錄中創建.dcu
,例如c:\dcu
。我創建了一個簡單的實用程序,在編譯器搜索路徑(可以從.cfg
,.dof
或.bdsproject
文件中讀取)中搜索目錄中的每個.dcu
文件,搜索.pas
。
德爾福調試器可以顯示哪些單位被編譯成模塊(EXE,DLL或包)。你可以在Modules視圖(View | Debug Windows | Modules)中看到它。點擊左上窗格中的一個模塊,左下方的窗格將顯示該模塊內置的所有編譯單元。如果一個特定的編譯單元是由多個源文件(即.pas和.inc文件)組成的,那麼也會顯示(當您展開comp單元時)。
或者,您可以讓Delphi編譯器在編譯項目時通過傳遞--depends來顯示使用的.dcus列表。它將輸出一個帶有所需的.dcus(和.dcps)列表的.d文件。
您可以將MAP文件與MapFileStats結合使用,這不僅會爲您提供所有的依賴關係,還會爲您提供最終可執行文件中的代碼(和資源)數量。
對你有依賴的單位很有用,但是很少使用,以及發現「肥胖豬」單位,這些單位需要加上廚房水槽。
FWIW,減少依賴和消除豬不僅有利於可執行文件的大小,而且在升級到新版本的時候也是有益的。
- 1. 我如何才能找到從Delphi應用程序
- 2. 如何從我的Delphi應用程序
- 3. 我如何在我的iOS應用程序中找到海拔
- 4. Rails的:找到所有與我的應用程序的條件
- 5. Android:如何找到Facebook應用程序ID的所有者?
- 6. 如何找到FB應用程序所有者,如果我只有FB應用程序密鑰和祕密?
- 7. 如何在erlang中找到對應用程序的所有外部調用
- 8. 如何使用VB6找到應用程序所在的目錄?
- 9. delphi XE 5程序單元
- 10. 如何找到我的閃亮應用程序的現有css?
- 11. iOS應用程序如何在iPhone上查找所有其他應用程序?
- 12. VS代碼 - 如何在Rails應用程序中找到所有引用
- 13. 如何讓我的應用程序跳到所有內容前?
- 14. 如何查找應用程序中的所有Show或ShowDialog WPF
- 15. 如何找出我應用程序中所有CPU的使用情況
- 16. 如何在應用程序關閉時閱讀我應用程序中的所有應用程序通知?
- 17. 我如何獲得我的應用程序的所有用戶
- 18. 如何在單元格數組中找到所有非空白單元格?
- 19. 如何將delphi tframe從dll加載到delphi應用程序
- 20. rtl90.bpl找不到,我如何將它包含在我的Delphi 2005 win 32bit應用程序中?
- 21. 我如何音頻單元集成到一個應用程序
- 22. 如何在我的iPhone應用程序中的一個表格單元格中容納所有信息?
- 23. 如何讓我的rails應用程序中的所有路線?
- 24. NSBundle pathForResource:ofType:找不到應用程序包中的所有文件
- 25. 需要找到所有的消息應用程序在Android
- 26. 如何查找應用程序使用的所有IP地址?
- 27. 我應該如何將Python嵌入到C++ Builder/Delphi 2010應用程序中?
- 28. 如何讓我的iPhone應用程序找到我的圖像?
- 29. 如何使用Delphi 6應用程序?
- 30. 通過在vb.net中傳遞進程ID來找到應用程序中的所有控件(win應用程序)
今天學到了一些新東西:`--depends` :)我總是清理.dcu目錄,然後在編譯後做了.dcu目錄的dir/b。調試器技巧也很整潔! – 2011-09-04 15:55:37