国内av一区二区_鲁鲁狠狠狠7777一区二区_今天高清视频在线观看_日韩美女一区二区三区在线观看

400-990-1959

【桌面運維】DLL文件是什么?有幾種調(diào)用方式?

發(fā)布時間: 來源:本站 作者:技術(shù)支持-殷工 瀏覽量(318) 點贊(55)
摘要:一、DLL文件是什么?DLL(Dynamic LinkLibrary)文件為動態(tài)鏈接庫文件,又稱“應用程序拓展”,是軟件文件類型。在Windows中,許多應用程序并不是一個完整的可執(zhí)行文件,它們被分割成一些相對獨立的動態(tài)鏈接庫,即DLL文件,放置于系統(tǒng)中。當我們執(zhí)行某一個程序時,相應的DLL文件就會被調(diào)用。一個應用程序可使用多個DLL文


一、DLL文件是什么?

DLL(Dynamic Link Library)文件為動態(tài)鏈接庫文件,又稱“應用程序拓展”,是軟件文件類型。在Windows中,許多應用程序并不是一個完整的可執(zhí)行文件,它們被分割成一些相對獨立的動態(tài)鏈接庫,即DLL文件,放置于系統(tǒng)中。當我們執(zhí)行某一個程序時,相應的DLL文件就會被調(diào)用。一個應用程序可使用多個DLL文件,一個DLL文件也可能被不同的應用程序使用,這樣的DLL文件被稱為共享DLL文件。

意義:

DLL文件中存放的是各類程序的函數(shù)(子過程)實現(xiàn)過程,當程序需要調(diào)用函數(shù)時需要先載入DLL,然后取得函數(shù)的地址,最后進行調(diào)用。使用DLL文件的好處是程序不需要在運行之初加載所有代碼,只有在程序需要某個函數(shù)的時候才從DLL中取出。另外,使用DLL文件還可以減小程序的體積。

通過使用 DLL,程序可以實現(xiàn)模塊化,由相對獨立的組件組成。

二、調(diào)用方式

1、靜態(tài)調(diào)用方式:

由編譯系統(tǒng)完成對 DLL 的加載和應用程序結(jié)束時 DLL 卸載的編碼(如還有其它程序使用該 DLL,則 Windows 對 DLL 的應用記錄減1,直到所有相關(guān)程序都結(jié)束對該 DLL 的使用時才釋放它,簡單實用,但不夠靈活,只能滿足一般要求。

隱式的調(diào)用:需要把產(chǎn)生動態(tài)連接庫時產(chǎn)生的 .LIB 文件加入到應用程序的工程中,想使用 DLL 中的函數(shù)時,只須說明一下。隱式調(diào)用不需要調(diào)用 LoadLibrary() 和 FreeLibrary()。程序員在建立一個 DLL 文件時,鏈接程序會自動生成一個與之對應的 LIB 導入文件。該文件包含了每一個 DLL 導出函數(shù)的符號名和可選的標識號,但是并不含有實際的代碼。LIB 文件作為 DLL 的替代文件被編譯到應用程序項目中。

當應用程序運行過程中需要加載 DLL 文件時,Windows 根據(jù)這些信息發(fā)現(xiàn)并加載 DLL,然后通過符號名或標識號實現(xiàn)對 DLL 函數(shù)的動態(tài)鏈接。所有被應用程序調(diào)用的 DLL 文件都會在應用程序 EXE 文件加載時被加載在到內(nèi)存中??蓤?zhí)行程序鏈接到一個包含 DLL 輸出函數(shù)信息的輸入庫文件(.LIB文件)。操作系統(tǒng)在加載使用可執(zhí)行程序時加載 DLL??蓤?zhí)行程序直接通過函數(shù)名調(diào)用 DLL 的輸出函數(shù),調(diào)用方法和程序內(nèi)部其 它的函數(shù)是一樣的。

2、動態(tài)調(diào)用方式:

是由編程者用 API 函數(shù)加載和卸載 DLL 來達到調(diào)用 DLL 的目的,使用上較復雜,但能更加有效地使用內(nèi)存,是編制大型應用程序時的重要方式。

顯式的調(diào)用:是指在應用程序中用 LoadLibrary 或 MFC 提供的 AfxLoadLibrary 顯式的將自己所做的動態(tài)連接庫調(diào)進來,動態(tài)連接庫的文件名即是上面兩個函數(shù)的參數(shù),再用 GetProcAddress() 獲取想要引入的函數(shù)。自此,你就可以象使用如同本應用程序自定義的函數(shù)一樣來調(diào)用此引入函數(shù)了。在應用程序退出之前,應該用 FreeLibrary 或 MFC 提供的 AfxFreeLibrary 釋放動態(tài)連接庫。直接調(diào)用 Win32 的 LoadLibary 函數(shù),并指定 DLL 的路徑作為參數(shù)。LoadLibary 返回 HINSTANCE 參數(shù),應用程序在調(diào)用 GetProcAddress 函數(shù)時使用這一參數(shù)。GetProcAddress 函數(shù)將符號名或標識號轉(zhuǎn)換為 DLL 內(nèi)部的地址。程序員可以決定 DLL 文件何時加載或不加載,顯式鏈接在運行時決定加載哪個 DLL 文件。使用 DLL 的程序在使用之前必須加載(LoadLibrary)加載DLL從而得到一個DLL模塊的句柄,然后調(diào)用 GetProcAddress 函數(shù)得到輸出函數(shù)的指針,在退出之前必須卸載DLL(FreeLibrary)。

正因為DLL 有占用內(nèi)存小,好編輯等的特點有很多電腦病毒都是DLL格式文件。但不能單獨運行。

動態(tài)鏈接庫通常都不能直接運行,也不能接收消息。它們是一些獨立的文件,其中包含能被可執(zhí)行程序或其它DLL調(diào)用來完成某項工作的函數(shù)。只有在其它模塊調(diào)用動態(tài)鏈接庫中的函數(shù)時,它才發(fā)揮作用。


本文鏈接:http://rockbackup.com/help/918.html

本文TAG:

dll

華企盾DSC數(shù)據(jù)防泄密系統(tǒng)可實現(xiàn)AES256/國密SM4文件透明加解密、U盤加密管理、CAD圖紙加密辦公文件加密、源代碼加密、財務報表加密、OA/ERP防泄密屏幕水印管控、終端行為審計等功能。為政府、企事業(yè)單位等不同行業(yè)提供不同應用的針對性解決方案。

華企盾 | 企業(yè)信息化時代的安全衛(wèi)士!

歡迎聯(lián)系我們,我們愿意為您解答任何有關(guān)數(shù)據(jù)安全的問題!

企業(yè)信息化時代的安全衛(wèi)士!

搜索千萬次不如咨詢1次

主要功能:文件加密、U盤管控、資產(chǎn)管理、桌面監(jiān)控、行為審計等

立即咨詢 400-990-1959
?掃碼反饋
二維碼 .iconfont{ font-family:"iconfont" !important; font-size:30rpx;font-style:normal; -webkit-font-smoothing: antialiased; -webkit-text-stroke-width: 0.2px; -moz-osx-font-smoothing: grayscale;} 国内av一区二区_鲁鲁狠狠狠7777一区二区_今天高清视频在线观看_日韩美女一区二区三区在线观看
大象一区二区三区| 婷婷丁香激情五月天| 欧美老熟妇乱子伦视频| 日产精品久久久久久| 久久久一级黄色片| 中文字幕人妻丝袜| 一本色道久久综合亚洲怎么玩| 亚洲精品无码久久久久久久| 国产日韩欧美一区二区三区四区| 欧美精品一区二区三区四区五区| 国产精品成人久久| 亚洲欧洲成人AV每日更新| 精品乱子伦一区二区| 国产一级伦理| 99久久精品欧美一区二区三区| 淫辱人妻2| 老熟妇高潮喷了╳╳╳| 午夜福利视频网站| 精产国品一二三区| 无码人妻精品一区二区三区蜜臀 | AV无码精品久久久久精品免费| 天天爽爽| 51精产国品一二三产区区金沙| 好爽…又高潮了毛片免费看| 亚洲欧美熟妇久久久久久久久| SSS视频资源| 欧美高清性猛交| 国产成人综合久久| 藏宝阁未满十八岁显示| 大陆av在线播放| 日本中文字幕在线播放| 久久午夜夜伦鲁鲁一区二区| 国产又粗又爽又黄| 国产人妻精品一区二区三区不卡| 国产精品乱码一区二区免费视频| 欧美三级午夜理伦三级富婆| 欧美hdse| 国产一区二区三区播放| 81国产精品久久久久久久久久| 狠狠久久综合| 国产精品久久久久毛片完整版性色|