您的位置:首页 > 编程语言 > Delphi

Delphi调用Dll的的2种写法

2014-07-29 17:47 405 查看




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.


来自为知笔记(Wiz)

附件列表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: