procedure TForm1.Button1Click(Sender: TObject);
var
   LibHandle : Thandle;
   FunAddress : FARPROC;
begin
    LibHandle:=LoadLibrary('VCDll.dll');
    FunAddress:=GetProcAddress(LibHandle,'fnVCDll');end;end.
得到函数的地址后,怎么调用呀。

解决方案 »

  1.   

    type
      TFunc = function(var aa: integer): integer;
    var
      h: THandle;
      func : TFunc;
    begin
      h := LoadLibrary(‘adf');
      func := GetProcessName('adffd');  //你的dll的函数
      TFunc(func(12)); //执行
      freeLibrary(h);
    end;
      

  2.   

    你需要将你想在dll中调用的过程用一个类型描述出来。比如你想调用
    fnVCDll(myform:TForm)函数,那么你就需要type TfnVCDll=procedure hello(myform:TForm);
    然后
    procedure TForm1.Button1Click(Sender: TObject);
    var
       LibHandle : Thandle;
       FunAddress : FARPROC;
    begin
        LibHandle:=LoadLibrary('VCDll.dll');
        FunAddress:=GetProcAddress(LibHandle,'fnVCDll');
        TfnVCDll(FunAddress)(Form1);
        FreeLibrary(LibHandle);
    end;
    end.