plsubs.pp 584 B

12345678910111213141516171819202122232425
  1. program testsubs;
  2. Type
  3. TSubStrFunc =
  4. function(const CString:PChar;FromPos,ToPos: longint):PChar;cdecl;
  5. Function dlopen(name: pchar;mode: longint):pointer;cdecl;external 'dl';
  6. Function dlsym(lib: pointer; name: pchar):pointer;cdecl;external 'dl';
  7. Function dlclose(lib: pointer):longint;cdecl;external 'dl';
  8. var
  9. s: PChar;
  10. FromPos, ToPos: Integer;
  11. lib : pointer;
  12. SubStr : TSubStrFunc;
  13. begin
  14. s := 'Test';
  15. FromPos := 2;
  16. ToPos := 3;
  17. lib:=dlopen('libsubs.so',1);
  18. Pointer(Substr):=dlsym(lib,'SubStr');
  19. WriteLn(SubStr(s, FromPos, ToPos));
  20. dlclose(lib);
  21. end.