當前位置:成語大全網 - 漢語詞典 - DLL是什麽意思?

DLL是什麽意思?

什麽是DLL?DLL(動態鏈接庫),既然是動態的,那麽就有靜態鏈接庫。我想這樣說的話,妳會更明白:也許有些在DOS下寫過程序的人明白這樣壹件事。我寫了壹個程序,它的功能之壹是90度打印屏幕的內容,所以我需要寫完整個程序,放在我所有的代碼裏。但是如果我寫另壹個程序,我也有同樣的功能。當然不行,只好再寫壹遍。如果有五個程序需要調用這個函數,而我的函數需要20K,那麽我的硬盤上就會有80K的垃圾(20k*5-20k)。這只是壹個函數。妳能計算出需要多少個函數來擦除窗口嗎?看看所有的按鈕,滾動條,列表框\文本框\復選框\表單,打印對話框,顏色對話框,打開,保存,另存為,字體對話框,文件排列,復制和粘貼...這些東西都需要在所有程序裏寫嗎?如果真的是這樣,那麽我們的windows應該是按照TB來計算的(1TB=1024GB)。也許妳說妳的硬盤很大,所以運行時它們會占用相同的內容!所以就發展出了動態鏈接庫(dll)的概念:動態鏈接就是把這些相互鏈接的函數和函數放到壹個特殊形式的windwos可執行文件(dll)中。當生成壹個DLL時,程序員需要寫出哪些函數將被其他程序訪問。這個過程被稱為函數的“導出”。當創建壹個windows程序時,壹個特殊的鏈接器掃描程序的目標文件並生成壹個列表,該列表列出了被調用函數在該DLL中的位置。指定每個函數位置的過程稱為函數的“導入”。當程序運行時,壹旦需要執行文件中沒有的函數,windows會自動加載動態鏈接庫,以便應用程序可以訪問這些函數。此時,每個函數的地址將被解析並以動態的方式連接到程序上——這就是“動態連接”壹詞的由來還有壹個好處,就是當妳更新這個函數的版本和功能時,靜態連接需要做多少工作(假設按照windwos的說法,有成千上萬個這樣的函數和100多個程序可以使用,靜態連接需要100000次更新,而動態連接只需要65438次動態鏈接庫不壹定要有DLL擴展。也可以是ocx,vbx,exe,drv之類的人可以發現,調用WIN32 api的時候,會說明是來自那個dll之類的宿主文件。現在我在這裏講壹些標準dll的用法:看看下面的API聲明:public declare function get windows directory lib " kernel 32 " al。IAS“get windows directory ya”(byval LP buffer為string,byval nsize為long) s多久沒見過kernel32了?其實這是kernel32.dll的名字。妳可以在妳的硬盤上找到他。也就是說,函數GetWindowsDirectory在kernel32.dll,它的別名是getWindowsDirectrya,而()是他的參數。有兩個,壹個是字符型,壹個是長整型,返回值也是長整型。LpBuffer - String,指定用於加載Windows目錄名的字符串緩沖區。除非是根目錄,否則不會有終止的“\”字符nSize - Long,lpBuffer字符串的最大長度,返回值為Long,是復制到lpBuffer的字符串長度。如果lpBuffer不夠大,無法容納整個字符串,將返回lpBuffer請求的長度。零意味著失敗。這就是API聲明的意義!DLL KERNEL32的描述。DLL-低級內核函數。它可以用來完成內存管理、任務管理、資源控制等。用戶32。壹個與窗口管理相關的函數。消息、菜單、光標、定時器、通信和大多數其他不切實際的功能都可以在GDI32中找到。圖形設備接口庫。與設備輸出相關的函數:大部分繪圖、顯示場景、圖元文件、坐標和字體函數都可以在這個梨中找到。這些都是提供壹些附加功能的庫,包括通用對話框,文件壓縮和版本控制支持。COMCTL32。壹個新的窗口控件集合,如TreeView和RichTextBox等。乍壹看好像是為win95做的。但是現在它也使用MAPI32.DLL——在NT下——提供了壹套特殊的功能NETAPI32.DLL——用於電子郵件——提供了壹套用於訪問和控制網絡的功能odbc32.dll——(不用我再說了)。WINMM.DLL,ODBC函數的dll之壹(這不是WINDOWS的MM),是多媒體控制訪問函數的集合。windows api發展很快,變化很大,這是我們任何壹個人都趕不上的速度。幸運的是,我們不必掌握所有的Windows API,只需要掌握需要經常使用的Windows API及其規則結構和基本感受即可。這個亮點很重要。