Win32 DLL:
Kod: Tümünü seç
library
WAFWeb;
uses
....
Main in 'Main.pas' {MainForm: TForm};
type
TWafEvent = procedure(Sender: TObject) of object;
type
tWAF_EVENTS = class(Tobject)
Tag: integer;
WafEvent: TWafEvent;
end;
var
MY_WAF_EVENTS: TWAF_EVENTS;
{$R *.res}
function WAF_INIT(EVENTS: TWAF_EVENTS): Integer; stdcall;
begin
try
MY_WAF_EVENTS := EVENTS;
MainForm.Button1.OnClick := MY_WAF_EVENTS.WafEvent;
MainForm.Button1.Tag := MY_WAF_EVENTS.tag;
Result := 5;
except
Result := 0;
end;
end;
exports
WAF_INIT;
begin
end.
Delphi .Net Application kodu:
Kod: Tümünü seç
unit UAnaForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, System.ComponentModel, Borland.Vcl.StdCtrls, System.Runtime.InteropServices;
type
TWafEvent = procedure(Sender: TObject) of object;
type
tWAF_EVENTS = class(Tobject)
Tag: integer;
WafEvent: TWafEvent;
end;
var
Main_WAF_EVENTS: tWAF_EVENTS;
type
TAnaForm = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure OnBtnBclick(sender: TObject);
end;
[DllImport('WAFWeb.dll')]
function WAF_INIT(EVENTS: tWAF_EVENTS): Integer; external; //stdcall; external 'WAFWeb.dll';
var
AnaForm: TAnaForm;
DllHandle: HWND;
implementation
{$R *.nfm}
procedure TAnaForm.Button1Click(Sender: TObject);
var
i: integer;
begin
i := WAF_INIT(Main_WAF_EVENTS);
ShowMessage(IntToStr(i));
end;
procedure TAnaForm.OnBtnBclick(sender: TObject);
var
sss: TStringList;
begin
sss := TStringList.Create;
sss.Add('Deneme');
sss.SaveToFile('C:\sss.txt');
sss.free;
end;
procedure TAnaForm.FormCreate(Sender: TObject);
begin
//dlllier yükle
DLLHandle := LoadLibrary('WAFWeb.dll');
Main_WAF_EVENTS := tWAF_EVENTS.Create;
Main_WAF_EVENTS.Tag := 20;
Main_WAF_EVENTS.WafEvent := OnBtnBclick;
end;
end.