日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dependency Walker

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dependency Walker 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【工具篇】@[TOC]Dependency Walker

Dependency Walker

之前一直用Dependency Walker看DLL導出接口,今天總結一下 Dependency Walker 使用說明。如果你想學習如何使用Dependency Walker, 可以仔細閱讀這篇文章,了解一下Dependency Walker對你以后調試DLL有所幫助。

1.什么是DLL?

在Windows世界中,有無數塊活動的大陸,它們都有一個共同的名字——動態鏈接庫。現在就讓我們走進這些神奇的活動大陸,找出它們隱藏已久的秘密吧!
初窺門徑:Windows的基石
隨便打開一個系統目錄,一眼望去就能看到很多擴展名DLL的文件,這些就是經常說的“動態鏈接庫”,DLL是Dynamic Link Library(即“動態鏈接庫”)的縮寫。從Microsoft公司推出首個版本的Windows以來,動態鏈接庫就一直是這個操作系統的基礎。

2.DLL有什么?

與其用晦澀的專業術語來解決DLL是什么,不如先來看看DLL里有什么。DLL和EXE文件一樣,其中包含的也是程序的二進制執行代碼和程序所需的資源(比如圖標、對話框、字符串等),可是為什么要把代碼放在DLL里面,而不是做成EXE呢?其實DLL中的代碼是以API函數形式出現的,通俗地說,DLL中包含的程序代碼都被做成了一個個小模塊,應用程序通過按下所需DLL中特定的按鈕,來調用DLL中這個按鈕所代表的功能。在使用“記事本”等程序時,如果要保存文件或打開文件,就會彈出通用文件對話框,讓我們選擇文件位置。你可知道,這就是調用了系統底層DLL中的通用對話框界面。

3.系統中幾個重要DLL

Windows中有3個非常重要的底層DLL:Kernel32.dll、User32.dll、GDI32.dll。其中Kernel32.dll顧名思義就是內核相關的功能,主要包含用于管理內存、進程和線程的函數;而User32.dll中包含的則是用于執行用戶界面任務的函數,比如把用戶的鼠標點擊操作傳遞給窗口,以便窗口根據用戶的點擊來執行預定的事件;GDI32.dll的名稱用了縮寫,全稱是Graphical Device Interface(圖形設備接口),包含用于畫圖和顯示文本的函數,比如要顯示一個程序窗口,就調用了其中的函數來畫這個窗口。

4.為什么要用DLL

DLL真的只是將程序代碼封裝成函數?為什么封裝成函數,就能成為系統中大量使用DLL的理由呢?帶著這幾個問題理解下面五點內容。

①應用程序的擴展

由于DLL能被應用程序動態載入內存,應用程序可以在需要的時候才將DLL載入到內存中,這使程序的可維護性變高。例如騰訊QQ,如果視頻部門需要將騰訊視頻升級,負責編寫的程序員不需要將所有代碼都重寫,只需要更新相應的DLL文件即可;

②程序員之間合作

簡單理解就像建一座大廈需要很多公司合作,有負責材料的公司,有負責運輸公司,有負責裝修的公司,不同公司用的工具有不同。最后都要按照設計師的圖紙進行組合。我們知道編程工具有很多VS、VC、ECLIPSE、QT creater等,如果好幾個人合作,編寫一個程序

總結

以上是生活随笔為你收集整理的Dependency Walker的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。