Ofline
MYDLL.DLL
в программе:
[HIDE=5]
[/HIDE]
Код:
library mydll;
uses SysUtils, Classes, Windows, Messages;
const
WM_KILLMAINFORM = WM_USER +102;
killmes = 'Умри достойно. Целую, mydll.dll';
{Определяем функцию как stdcall}
function GetSimpleText( FormHandle: THandle; LangRus: Boolean): PChar; stdcall;
begin
{В зависимости от LangRus возвращаем русскую (True) либо английскую (False) фразу}
if LangRus then
Result := PChar('Здравствуй, мир!')
else
Result := PChar('Hello, world!');
if (FormHandle > 0) then
PostMessage(FormHandle,WM_KILLMAINFORM, 0, Lparam(PChar(killmes)));
end;
{Директива exports указывает, какие функции будут экспортированы этой DLL}
exports GetSimpleText;
begin
end.
[HIDE=5]
Код:
//...
const
WM_KILLMAINFORM = WM_USER +102;
//...
type
TForm1 = class(TForm)
/...
private
procedure WMKillMainForm(msg: TMessage); message WM_KILLMAINFORM;
//...
public
//...
end;
implementation
//...
procedure TForm1.WMKillMainForm(msg: TMessage);
begin
ShowMessage(PChar(msg.LParam));
Self.Close;
// или Application.Terminate;
end;