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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

delphi DLL动态链接库

發(fā)布時(shí)間:2024/10/8 编程问答 130 豆豆
生活随笔 收集整理的這篇文章主要介紹了 delphi DLL动态链接库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

假設(shè)有兩個(gè)應(yīng)用程序,它們都要調(diào)用一個(gè)單元中的一個(gè)方法,那么這兩個(gè)應(yīng)用程序都要在Uses語句中引用該單元。如果同時(shí)運(yùn)行這兩個(gè)應(yīng)用程序,這個(gè)方法就會(huì)在內(nèi)存中存在兩份,這顯然是內(nèi)存的一種浪費(fèi),使用動(dòng)態(tài)鏈接庫就可以解決這個(gè)問題。

動(dòng)態(tài)鏈接庫DLL與其他應(yīng)用程序通過動(dòng)態(tài)鏈接技術(shù)來共享代碼。如果一個(gè)應(yīng)用程序使用了動(dòng)態(tài)鏈接庫,Win32系統(tǒng)保證內(nèi)存中只有DLL的一份復(fù)制品,這是通過內(nèi)存映射文件實(shí)現(xiàn)的。DLL首先被調(diào)入Win32系統(tǒng)的全局堆棧,然后映射到調(diào)用這個(gè)DLL的進(jìn)程的地址空間,在Win32系統(tǒng)中,每個(gè)進(jìn)程擁有自己的32位線性地址空間。如果一個(gè)DLL被多個(gè)進(jìn)程調(diào)用,每個(gè)進(jìn)程都會(huì)收到該DLL的一份映射。在Win32中,DLL可以看作是每個(gè)進(jìn)程自己的代碼。但是這并不是說物理內(nèi)存中會(huì)分配DLL的多個(gè)實(shí)例。

DLL的優(yōu)點(diǎn):

(1)?????? 共享代碼、資源和數(shù)據(jù)

(2)?????? 隱藏實(shí)現(xiàn)的細(xì)節(jié)

例如我們創(chuàng)建一個(gè)引用DLL的例子

(1)?? 新建――other---DLL Wizard 命名為:DLLTest

(2)?? 寫一個(gè)加法函數(shù)

uses

? SysUtils,

? Classes;

function AddMethod(Num1,Num2 : Integer) : Integer ;stdcall;?? //定義簡單加法函數(shù)

? begin

??? Result := Num1 + Num2;

? end;

? exports?????? ??//exports 子句用于引出DLL中要被其他應(yīng)用程序調(diào)用 的函數(shù)或過程。

?? AddMethod;

(3)?? 生成DLLTest.dll, 復(fù)制DLLTest.dll將其放在要引用該DLL項(xiàng)目工程下。

(4)?? var

? Form10: TForm10;

? function AddMethod(Num1,Num2 : Integer) : Integer ;stdcall; external 'DLLTest.DLL'? //聲明DLL方法

? name 'AddMethod';

implementation

{$R *.dfm}

procedure TForm10.btnEqualClick(Sender: TObject);

var

? num1, num2 : Integer;

begin

? num1 := StrToInt(edtFirst.Text );

? num2 :=StrToInt(edtSecond.Text );

? edtResult.Text :=IntToStr(AddMethod(num1,num2));? //直接使用DLL中的方法

end;

轉(zhuǎn)載于:https://www.cnblogs.com/taofengli288/archive/2011/09/06/2168669.html

總結(jié)

以上是生活随笔為你收集整理的delphi DLL动态链接库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。