易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi 的 Dll 函数的 调用


一、Dll建立
(一)DLL项目的建立
library mydll;
 
uses
base in 'base.pas';
 
exports
Triple name 'Tr';
 
{$R *.res}
 
begin
end.
 
(二)函数单元
unit base;
 
interface
 
uses windows;
 
function Triple(N:integer):integer;stdcall;
 
implementation
 
function Triple(N:integer):integer;stdcall;
begin
result:=n*3;
end;
 
end.
 
 
二、静态调用
 
unit Unit1;
 
interface
 
uses
Windows, SysUtils, Controls, Forms,
StdCtrls, Classes;
 
type
TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
private
    { Private declarations }
public
    { Public declarations }
end;
 
var
Form1: TForm1;
 
implementation
 
const
gdi32='mydll';
function triple(n:integer):integer;stdcall;external gdi32 name 'Tr';
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=inttostr(triple(10));
end;
 
end.
 
三、动态调用
unit Unit2;
 
interface
 
uses
Windows, SysUtils, Controls, Forms,
StdCtrls, Classes;
 
type
TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
private
    { Private declarations }
public
    { Public declarations }
end;
 
var
Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
type
   Taddc=function(n:integer):integer;stdcall;//定义函数指针
var
Handle:Thandle;
addc:Taddc;
begin
Handle:=LoadLibrary('mydll.dll');//加载mydll
if Handle>32 then
begin
   @addc:=GetProcAddress(Handle,'Tr'); //取Tr函数入口地址,大小写敏感。Tr为mydll中的Triple的exports 的name命名
   if @a


相关文档:

Delphi 字符串操作

常忘记,在此做笔记。
这几个函数都包含在StrUtils中,所以需要uses StrUtils; 
假设字符串是 Dstr := ’Delphi is the BEST’, 那么 
LeftStr(Dstr, 5) := ’Delph’ 
MidStr(Dstr, 6, 7) := ’ ......

DELPHI加密字串(异或运算加密)

这个本来我我在DELPHI盒子看到的,后来我对其作了一点修改,这里上全部代码,可以直接用
首先有两个自定的转换函数:
function myStrToHex(s:string):string; //字串转16进制
var
TmpStr:string;
i:integer;
begin
TmpStr:='';
for i:=1 to Length(s)do
TmpStr:=TmpStr+IntToHex(ord(s[i]),2);
Res ......

怎样在Delphi中调用EXE文件


//加一下按钮,加一个对话框就OK啦
procedure TForm1.Button1Click(Sender: TObject);
var
S: String;
begin
if OpenDialog1.Execute then
begin
s := OpenDialog1.FileName;
WinExec( PChar(s), SW_NORMAL);
end;
end;

----------------------- ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号