了解 Visual C++ 應用程式的相依性
判斷您的應用程式所相依之 Visual C++ 程式庫的一種方式,就是查看專案 [屬性頁] 對話方塊中的 [一般] 索引標籤。 例如,您可能會看到專案正在使用 MFC 和 ATL 程式庫。 如果您選擇 [使用動態程式庫中的 MFC],您的應用程式就會在執行階段相依於 MFC DLL,例如 mfc100.dll。 如果應用程式不使用 MFC 或 ATL,而且在 [組態屬性] 之 C/C++ 分支中的 [程式碼產生] 索引標籤上,於 [執行階段程式庫] 選擇 [多執行緒偵錯 DLL (/MDd)],則應用程式依然會相依於 CRT 程式庫。
判斷應用程式依賴哪些 DLL 的一個最簡單明瞭的方法,就是使用 Dependency Walker (depends.exe) 去開啟應用程式。 您可以從 http://www.dependencywalker.com (英文) 下載 Dependency Walker。
在使用了 depends.exe,或將 DUMPBIN 公用程式搭配 /DEPENDENTS 選項使用後,您可以看到靜態連結到應用程式的 DLL 之清單,以及應用程式的延遲載入 DLL 之清單。
若要查看哪些 DLL (例如 ActiveX 控制項) 會動態載入,請使用 depends.exe 的程式碼剖析功能, 然後測試應用程式,直到您確定所有程式碼路徑都已經運用為止。 當您結束設定檔工作階段 (Session) 時,depends.exe 將會顯示已動態載入哪些 DLL。
在使用 depends.exe 時,請注意 DLL 可能會相依於另一個 DLL 或特定 DLL 的版本。 您可在開發電腦或目標電腦上使用 depends.exe。 在開發電腦上,depends.exe 將會報告支援應用程式所需的 DLL。 如果您無法在目標電腦上執行應用程式,您可將 depends.exe 複製到目標電腦,然後在 depends.exe 中開啟應用程式。 Depends.exe 將會報告哪一個應用程式的 DLL 遺失或版本不正確。
當您收集到應用程式所依賴的完整 DLL 清單之後,您可以判斷當部署到另一部電腦時,必須將哪些 DLL 與應用程式一起轉散發。 在大多數情況下,您不需要轉散發系統 DLL,但是可能必須轉散發 Visual C++ 程式庫的 DLL。 如需詳細資訊,請參閱決定要轉散發哪些 DLL。