我是个新手,问个简单而又奇怪的问题。盼望各位前来顶帖,解答ing...............................................
我写了一个简单的dll 里面就一个函数 计算1个数的的2倍。
dll程序如下:
dpr文件:
library MyDLL;uses SysUtils, Classes, Base in 'Base.pas';{$R *.res}exports Doubl;beginend.unit Base;interface function Doubl(N:integer):integer;stdcall;implementation function Doubl(N:integer):integer;stdcall; begin Result:=N*2; end;end.
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TDoubl = function(N:integer):integer; TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);varorde:integer;Moudel:THandle;pfuc:TFarProc;begin Moudel := Loadlibrary('MyDLL.dll'); if Moudel > 32 then begin pfuc := GetProcAddress(Moudel,'Doubl'); orde := TDoubl(pfuc)(4); showmessage(IntToStr(orde)); end; FreeLibrary(Moudel);end;end.