Windows下程式打包發布時的小技巧(使用Dependency Walker偵測不理想,改用VS內建的dumpbin則萬無一失,還可查看dll匯出的函數)

來源:互聯網
上載者:User

標籤:小技巧   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匯出的函數)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.