標籤:小技巧 rsa 定位 visual 連結庫 開發 動態連結程式庫 www. ges
Windows下開發的應用程式在發布時,需要將其依賴的一些動態連結程式庫一起打進安裝包裡面去。這個時候,快速確定這個程式到底依賴哪些動態連結程式庫變得非常重要。很久以前寫過一篇關於Qt程式安裝包製作的部落格,裡面介紹了Dependency Walker這個小工具。但是實際操作起來並不理想,因為Dependency Walker將exe檔案依賴的所有動態庫以及動態庫所依賴的動態庫都列出來了。看得你一臉懵逼:
你很難分清楚:倒底哪些DLL是需要打包的,哪些DLL是系統內建的。而作為打包過程中的一個小步驟,我根本不需要知道這麼多資訊。這個時候,我們需要一個更加簡潔明了的工具。dumpbin就是今天要介紹的主角。
二、使用
dumpbin是隨Visual Studio一起發布的,在Visual Studio的“本機工具命令列”中就可以直接使用。使用的第一步就是開啟Visual Studio的“本機工具命令列”:
這裡我選擇的是“VS2015 X64本機工具命令提示字元”。命令列視窗開啟後直接進入到工程目錄,輸入命令“dumpbin /IMPORTS ReplaceAETemplate.exe > output.txt”:
Duang~~~,所有依賴的DLL項都儲存到output.txt裡面去了。開啟瞧瞧輸出內容:
依賴的動態庫一項項的非常清晰明了。當然,裡面也會列出一些系統的動態庫。這些系統動態庫在系統安裝時就有了,所以不用打包進去。當然就算打包進去也不會有什麼害處。這個命令再配合everything這個小工具尋找依賴的DLL,簡直不要太爽:
三、小結
dumpbin的IMPORTS參數是用來查看程式依賴的其他動態庫的,這對於可執行程式exe和動態連結程式庫DLL都是適用的。EXPORTS則適用於DLL查看其匯出的函數介面:
結果照樣重定位到output.txt中去了。這是因為如果直接在命令列中輸出,前面的內容可能會被截斷,導致內容看不完整。
從上面紅框中可以看出,UniversalBlender.dll這個動態連結程式庫匯出了這麼一些函數:capabilityAssessment, initializeDevice, runImageBlender等。
http://www.cnblogs.com/csuftzzk/p/windows_application_distribution.html
Windows下程式打包發布時的小技巧(使用Dependency Walker偵測不理想,改用VS內建的dumpbin則萬無一失,還可查看dll匯出的函數)