his - dll

his -  dll

EDLLLoadError   =   class(Exception);

  TShowForm = function(istr:string;var a,b,c,d,e,f,g,h,i,j :string;
    var k :Integer):integer;Stdcall;
  function common_data(istr:string;var a,b,c,d,e,f,g,h,i,j :string;
    var k :Integer):integer;stdcall;external 'HisInterface.dll';

var
  frmHISManageCenter: TfrmHISManageCenter;  //HisInterface.dll


implementation

{$R *.dfm}

procedure TfrmHISManageCenter.dxBarButton13Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmHISManageCenter.dxBarButton39Click(Sender: TObject);
var
  mainfrm,DllForm:THandle;
  ShowForm:TShowForm;
  testStr :string ;
  testint :Integer;
  a,b,c,d,e,f,g,h,i,j :string;
  k :Integer;
begin
   testStr := '[1|2]';
   testint := common_data(testStr,a,b,c,d,e,f,g,h,i,j,k);
  {mainfrm:=frmHISManageCenter.Handle;
  DllForm:=LoadLibrary('HisInterface.dll');
    Try
    begin
        if DllForm<>0 then
        begin
           @ShowForm:=GetProcAddress(DllForm,'common_data');
           ShowForm(mainfrm,'');
        end
        else
        begin
          RaiseLastWin32Error;
        end;
   end;
   Finally
       FreeLibrary(DllForm);
   end;    }

end;

procedure TfrmHISManageCenter.dxBarButton40Click(Sender: TObject);
var
    LibHandle:THandle;
    ShowForm:TShowForm;
    testStr :string ;
    testint :Integer;
    a,b,c,d,e,f,g,h,i,j :string;
    k :Integer;
begin
    testint := 2 ;
    testStr := '[1|2]';
    LibHandle   :=   LoadLibrary( 'HisInterface.DLL');
    try
        if   LibHandle   =   0   then
            raise   EDLLLoadError.Create( '不能装载动态链接库,请确认动态链接库的存在! ');
        @ShowForm   :=   GetProcAddress(LibHandle,   'common_data');
        if   not   (@ShowForm   =   nil)   then
            testint := ShowForm(testStr,a,b,c,d,e,f,g,h,i,j,k)
        else
            RaiseLastWin32Error;
        ShowMessage( IntToStr(testint) );
    finally
        FreeLibrary(LibHandle);   //   Unload   the   DLL.
    end;
end;

猜你喜欢

转载自free--eagle.iteye.com/blog/854378
dll