mirror of https://gitlab.com/basile.b/dexed.git
49 lines
1.2 KiB
Plaintext
49 lines
1.2 KiB
Plaintext
program cedast_loader;
|
|
|
|
uses dynlibs, classes, sysutils;
|
|
|
|
type
|
|
|
|
TAstToken = NativeInt;
|
|
|
|
TScanFile = function(filename: PChar): TAstToken; cdecl;
|
|
TScanBuffer = function (buffer: PByte; len: NativeUint): TAstToken; cdecl;
|
|
TRescan = procedure (tok: TAstToken); cdecl;
|
|
TUnleash = procedure (tok: TAstToken); cdecl;
|
|
|
|
var
|
|
dast: TLibHandle;
|
|
scanfile: TScanFile;
|
|
scanbuffer: TScanBuffer;
|
|
rescan: TRescan;
|
|
unleash: TUnleash;
|
|
tok: TAstToken;
|
|
|
|
|
|
begin
|
|
|
|
dast := LoadLibrary('cedast.dll');
|
|
if dast = NilHandle then
|
|
writeln('dast invalid handle')
|
|
else begin
|
|
scanfile := TScanFile(GetProcAddress(dast, 'scanFile'));
|
|
if scanFile = nil then writeln('invalid scanfile proc ptr')
|
|
else tok := scanfile(PChar('blah'));
|
|
|
|
scanbuffer := TScanBuffer(GetProcAddress(dast, 'scanBuffer'));
|
|
if scanbuffer = nil then writeln('invalid scanBuffer proc ptr')
|
|
else scanbuffer(nil, 0);
|
|
|
|
rescan := TRescan(GetProcAddress(dast, 'rescan'));
|
|
if rescan = nil then writeln('invalid rescan proc ptr')
|
|
else rescan(tok);
|
|
|
|
unleash := TUnleash(GetProcAddress(dast, 'unleash'));
|
|
if unleash = nil then writeln('invalid unleash proc ptr')
|
|
else unleash(tok);
|
|
end;
|
|
|
|
readln;
|
|
end.
|
|
|