Delphi调用Dll的的2种写法

Delphi调用Dll的的2种写法Delphi调用Dll的的2种写法
    
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
//定义类型要与原函数一样
function
GetUserDefaultUILanguage():Integer;external 'Kernel32.DLL';

type
  TForm1 =
class(TForm)
    Button1:
TButton;
    Button2:
TButton;
    procedure Button1Click(Sender:
TObject);
    procedure Button2Click(Sender:
TObject);
  private
    { Private
declarations }
  public
    { Public
declarations }
  end;

var
  Form1:
TForm1;

implementation

{$R
*.dfm}

procedure
TForm1.Button1Click(Sender: TObject);
begin
    if GetUserDefaultUILanguage() = $0804 then
    begin
      Caption:='简体中文';
    end
    else
    begin
      Caption:='英文';
    end;
end;
    

//方法2 使用LoadLibrary
procedure
TForm1.Button2Click(Sender: TObject);
var
   h:THandle;
   pFunc:function():Integer;stdcall;
begin
   h:=LoadLibrary(PChar('Kernel32.DLL'));
   if h=0 then
Exit;
   pFunc:=
GetProcAddress(h,PChar('GetUserDefaultUILanguage'));
   if Assigned(pFunc) then

    if pFunc() = $0804 then
    begin
      Caption:='简体中文';
    end
    else
    begin
      Caption:='英文';
    end;

   FreeLibrary(h);
end;
 
 
procedure TForm1.Button3Click(Sender:
TObject);
var
   h:THandle;
   pFunc:function():Integer;stdcall;
begin
   h:=LoadLibrary('Kernel32.DLL');
   if h=0 then
Exit;
   @pFunc:= GetProcAddress(h,'GetUserDefaultUILanguage');
   if Assigned(pFunc) then

    if pFunc() = $0804 then
    begin
      Caption:='CHS';
    end
    else
    begin
      Caption:='ENGLISH';
    end;

   FreeLibrary(h);
end;



end.

附件列表

上一篇:Spring Boot:快速入门


下一篇:python(七)字符串格式化、生成器与迭代器