program ideone;
{$mode objfpc}
uses dynlibs;
type
TStrLen = function(a:pchar):SizeInt; StdCall;
var
LibC: TLibHandle = NilHandle;
Func: TStrLen;
begin
LibC := LoadLibrary('libc.so.6');
if LibC = NilHandle then Exit;
Func := TStrLen(GetProcedureAddress(LibC, 'strlen'));
Writeln(Func('Test'));
end.
cHJvZ3JhbSBpZGVvbmU7CnskbW9kZSBvYmpmcGN9CnVzZXMgZHlubGliczsKCnR5cGUKICBUU3RyTGVuID0gZnVuY3Rpb24oYTpwY2hhcik6U2l6ZUludDsgU3RkQ2FsbDsKCnZhcgogIExpYkM6IFRMaWJIYW5kbGUgPSBOaWxIYW5kbGU7CiAgRnVuYzogVFN0ckxlbjsKICAKYmVnaW4gCiAgTGliQyA6PSBMb2FkTGlicmFyeSgnbGliYy5zby42Jyk7CiAgaWYgTGliQyA9IE5pbEhhbmRsZSB0aGVuIEV4aXQ7CiAgRnVuYyA6PSBUU3RyTGVuKEdldFByb2NlZHVyZUFkZHJlc3MoTGliQywgJ3N0cmxlbicpKTsKICBXcml0ZWxuKEZ1bmMoJ1Rlc3QnKSk7CmVuZC4=