program ideone;
{$mode objfpc}
uses dynlibs;
type
TStrLen = function(a:pchar):SizeInt; cdecl;
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.
cHJvZ3JhbSBpZGVvbmU7CnskbW9kZSBvYmpmcGN9CnVzZXMgZHlubGliczsKCnR5cGUKICBUU3RyTGVuID0gZnVuY3Rpb24oYTpwY2hhcik6U2l6ZUludDsgY2RlY2w7Cgp2YXIKICBMaWJDOiBUTGliSGFuZGxlID0gTmlsSGFuZGxlOwogIEZ1bmM6IFRTdHJMZW47CiAgCmJlZ2luIAogIExpYkMgOj0gTG9hZExpYnJhcnkoJ2xpYmMuc28uNicpOwogIGlmIExpYkMgPSBOaWxIYW5kbGUgdGhlbiBFeGl0OwogIEZ1bmMgOj0gVFN0ckxlbihHZXRQcm9jZWR1cmVBZGRyZXNzKExpYkMsICdzdHJsZW4nKSk7CiAgV3JpdGVsbihGdW5jKCdUZXN0JykpOwplbmQu