library Firstdll;
uses
ShareMem, SysUtils, Windows;
function Triple (C: Char): Integer; stdcall; overload;
begin
MessageBox (0, 'Triple function called',
'First DLL', mb_OK);
Result := Ord (C) * 3;
end;
function Triple (N: Integer): Integer; stdcall; overload;
begin
MessageBox (0, 'Triple function called',
'First DLL', mb_OK);
Result := N * 3;
end;
function Double (N: Integer): Integer; stdcall;
begin
MessageBox (0, 'Double function called',
'First DLL', mb_OK);
Result := N * 2;
end;
function DoubleString (S: string; Separator: Char): string; stdcall;
begin
Result := S + Separator + S;
end;
function DoublePChar (BufferIn, BufferOut: PChar;
BufferOutLen: Cardinal; Separator: Char): LongBool; stdcall;
var
SepStr: array [0..1] of Char;
begin
if BufferOutLen > StrLen (BufferIn) * 2 + 2 then
begin
StrCopy (BufferOut, BufferIn);
SepStr [0] := Separator;
SepStr [1] := #0;
StrCat (BufferOut, SepStr);
StrCat (BufferOut, BufferIn);
Result := True;
end
else
Result := False;
end;
exports
Triple (N: Integer),
Triple (C: Char) name 'TripleChar',
Double, DoubleString, DoublePChar;
end.
|