Cross-Platform C Library Integration

Pregled

HotPDF koristi HPDFCLibs.pas kao Pascal most između Delphi-ja i statički povezanih C objektnog fajlova koje koriste HPDFZLib.pas, HPDFJpeg.pas i HPDFTiff.pas. Jedinica izlaže runtime simbole koje te biblioteke očekuju, uz jednu doslednu Pascal deklaracionu sloj i za Win32 i za Win64 buildove

Key Features

  • Deljeni runtime most za zlib-ng u zlib-kompatibilnom režimu, zlib-ng 64-bitni runtime SIMD dispatch, libjpeg-turbo 3.1.90 sa NASM SIMD objektima i libtiff 4.7.1
  • Memory, stdio, string/character, and selected math/runtime helper coverage
  • 32-byte aligned malloc, free, realloc, and calloc bridging for SIMD-friendly native buffers
  • Win32 kompatibilnost sa zlib-ng OMF objektima napravljenim pomoću bcc32c i JPEG/TIFF OMF objektima napravljenim pomoću bcc32 iz Lib\thirdparty\Win32
  • Win64 kompatibilnost sa COFF64 obj fajlovima iz Lib\thirdparty\Win64 i zlib-ng COFF objektima iz Lib\thirdparty\Win64x
  • Pomoćni tipovi veličine pokazivača i Pascal stubovi za simbole koje Delphi linker ne može direktno da uveze

JPEG pozadina visokih performansi

Standardni JPEG tokovi rada podržani su preko libjpeg-turbo 3.1.90 kroz klasični libjpeg-kompatibilan API izložen u HPDFJpeg.pas. OMF izgradnje za Win32, Win64 i Win64x uključuju odgovarajuće NASM SIMD akceleracione objekte, a isti priloženi skup objekata dostupan je i sloju za integraciju TIFF-a za rukovanje JPEG-komprimovanim TIFF-ovima

Napomene o zlib-ng mostu

Win64 Flate tokovi slike koriste mali C most oko zlib-ng jednokratne kompresije. Most čuva izvorne zlib-ng tipove dužine unutar C-ja, a istovremeno zadržava Pascal-izložene 32-bitne dužine bafera i maksimalno ponašanje kompresije HotPDF-a

Win64x i dijagnostičke MSVC Win64 zlib-ng izgradnje objekata uključuju SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ i AVX2 implementacije sa generičkim rezervnim opcijama. Win32 zadržava generičke zlib-ng OMF objekte radi kompatibilnosti sa bcc32c, dok Win32 JPEG/TIFF put ostaje na klasičnim bcc32 OMF objektima

Podržane grupe funkcija

  • 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 omotači i WinAPI podržani pomoćnici koji odgovaraju bcc32c i bcc32 OMF objektima povezanim sa svakom podržanom Delphi Win32 verzijom
  • 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

Vidi i