Keresztplatformos C könyvtár integráció

Áttekintés

A HotPDF a HPDFCLibs.pas egységet használja a Delphi és a HPDFZLib.pas, HPDFJpeg.pas, valamint a HPDFTiff.pas által használt statikusan linkelt C objektumfájlok közötti Pascal-oldali hídként. Az egység elérhetővé teszi azokat a futásidejű szimbólumokat, amelyeket ezek a könyvtárak elvárnak, miközben egyetlen konzisztens Pascal deklarációs réteget tart fenn mind a Win32, mind a Win64 buildekhez

Főbb jellemzők

  • Közös futásidejű híd a zlib-ng-hez zlib-kompatibilis módban, a zlib-ng 64 bites futásidejű SIMD elosztáshoz, a libjpeg-turbo 3.1.90-hez NASM SIMD objektumokkal, valamint a libtiff 4.7.1-hez
  • Memória, stdio, karakterlánc/karakter, valamint kiválasztott matematikai/futásidejű segédek lefedettsége
  • 32 bájtos igazítású malloc, free, realloc és calloc áthidalás a SIMD-barát natív pufferekhez
  • Win32 kompatibilitás a Lib\thirdparty\Win32 könyvtárból származó, bcc32c-vel fordított zlib-ng OMF objektumokkal és bcc32-vel fordított JPEG/TIFF OMF objektumokkal
  • Win64 kompatibilitás a Lib\thirdparty\Win64 könyvtárból származó COFF64 obj fájlokkal és a Lib\thirdparty\Win64x könyvtárból származó zlib-ng COFF objektumokkal
  • Mutató-méretű segédtípusok és Pascal csonkok olyan szimbólumokhoz, amelyeket a Delphi linker nem tud közvetlenül importálni

Nagy teljesítményű JPEG háttérrendszer

A szabványos JPEG munkafolyamatokat a libjpeg-turbo 3.1.90 támogatja a HPDFJpeg.pas által kínált klasszikus libjpeg-kompatibilis API-n keresztül. A Win32, Win64 és Win64x objektum-buildek tartalmazzák a vonatkozó NASM SIMD gyorsító objektumokat, és ugyanez a csomagolt objektumkészlet elérhető a TIFF integrációs réteg számára is a JPEG-tömörített TIFF kezeléshez

Zlib-ng híd megjegyzések

A Win64 Flate képfolyamok egy kis C hidat használnak a zlib-ng egyszeri tömörítése körül. A híd megtartja a natív zlib-ng hosszúsági típusokat a C-n belül, miközben megőrzi a HotPDF Pascal-oldali 32 bites pufferhosszait és a maximális tömörítési viselkedést

A Win64x és a diagnosztikai MSVC Win64 zlib-ng objektum-buildek tartalmazzák a futásidőben vezérelt SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ és AVX2 implementációkat generikus tartalékokkal. A Win32 megtartja a generikus zlib-ng OMF objektumokat a bcc32c kompatibilitáshoz, miközben a Win32 JPEG/TIFF útvonal a klasszikus bcc32 OMF objektumokon marad

Támogatott funkciócsoportok

  • Memóriakezelés: malloc, free, realloc, calloc 32 bájtos igazítású lefoglalással
  • Fájl- és folyam-műveletek: fopen, fclose, fputc, fread, fwrite, fflush, ferror
  • Karakterlánc- és karakterfunkciók: strcpy, sprintf, memcpy, memmove, memset, tolower, toupper, towlower, towupper, getenv, atoi
  • Futásidejű segédek: ftol, setjmp, log, snprintf, memcmp

Architektúra támogatás

  • Win32: Pascal wrapperek és WinAPI-hátterű segédek, amelyek megegyeznek az összes támogatott Delphi Win32 verzió által linkelt bcc32c és bcc32 OMF objektumokkal
  • Win64: msvcrt.dll importok, plusz az MSVC által generált COFF64 objektumokhoz szükséges kis segédcsonkok
  • Gyakori típusok: A PtrInt és PtrUInt típusok igazítva tartják a mutató-méretű deklarációkat mindkét célpontban

See Also