Cross-Platform C Library Integration

Prehľad

HotPDF používa HPDFCLibs.pas ako most na strane Pascala medzi Delphim a staticky linkovanými C objektovými súbormi používanými v HPDFZLib.pas, HPDFJpeg.pas a HPDFTiff.pas Jednotka vystavuje runtime symboly, ktoré tieto knižnice očakávajú, a zároveň udržiava jednu konzistentnú vrstvu Pascal deklarácií pre zostavy Win32 aj Win64

Key Features

  • Zdieľaný runtime most pre zlib-ng v režime kompatibilnom so zlib, 64-bitové runtime SIMD prepínanie zlib-ng, libjpeg-turbo 3.1.90 s objektmi NASM SIMD a libtiff 4.7.1
  • Pokrytie pamäťových, stdio, stringových/znakových a vybraných matematických/runtime pomocných funkcií
  • 32-byte aligned malloc, free, realloc, and calloc bridging for SIMD-friendly native buffers
  • Kompatibilita Win32 s OMF objektmi zlib-ng zostavenými pomocou bcc32c a OMF objektmi JPEG/TIFF zostavenými pomocou bcc32 z Lib\thirdparty\Win32
  • Kompatibilita Win64 s COFF64 súbormi objektov z Lib\thirdparty\Win64 a zlib-ng COFF objektmi z Lib\thirdparty\Win64x
  • Pomocné typy so šírkou podľa ukazovateľa a Pascal stuby pre symboly, ktoré Delphi linker nedokáže importovať priamo

High-Performance JPEG Backend

Štandardné pracovné postupy JPEG sú podporované cez libjpeg-turbo 3.1.90 prostredníctvom klasického API kompatibilného s libjpeg, ktoré vystavuje HPDFJpeg.pas Objektové zostavy Win32, Win64 a Win64x obsahujú príslušné objekty zrýchlenia NASM SIMD a rovnaká pribalená sada objektov je k dispozícii aj pre integračnú vrstvu TIFF pri práci s JPEG-komprimovanými TIFF

Zlib-ng Bridge Notes

Prúdy obrázkov Flate vo Win64 používajú malý C most okolo jednorazovej kompresie zlib-ng Most ponecháva natívne typy dĺžok zlib-ng v jazyku C a zároveň zachováva 32-bitové dĺžky buffera na strane Pascalu a maximálne kompresné správanie HotPDF

Objektové zostavy zlib-ng pre Win64x a diagnostický MSVC Win64 obsahujú za behu rozdeľované implementácie SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ a AVX2 s generickými záložnými vetvami Win32 ponecháva generické objekty zlib-ng OMF kvôli kompatibilite s bcc32c, zatiaľ čo cesta JPEG/TIFF pre Win32 zostáva na klasických objektoch bcc32 OMF

Podporované skupiny funkcií

  • Memory Management: malloc, free, realloc, calloc with 32-byte aligned allocation
  • File and Stream Operations: fopen, fclose, fputc, fread, fwrite, fflush, ferror
  • String and Character Functions: strcpy, sprintf, memcpy, memmove, memset, tolower, toupper, towlower, towupper, getenv, atoi
  • Runtime Helpers: ftol, setjmp, log, snprintf, memcmp

Architecture Support

  • Win32: Pascal obaly a pomocné funkcie nad WinAPI, ktoré zodpovedajú OMF objektom bcc32c a bcc32 linkovaným každou podporovanou verziou Delphi pre Win32
  • Win64: msvcrt.dll imports plus small helper stubs required by the MSVC-generated COFF64 objects
  • Common Types: PtrInt and PtrUInt keep pointer-sized declarations aligned across both targets

See Also