Cross-Platform C Library Integration

Pregled

HotPDF uporablja HPDFCLibs.pas kot Pascalov most med Delphijem in statično povezanimi C-objektnimi datotekami, ki jih uporabljajo HPDFZLib.pas, HPDFJpeg.pas in HPDFTiff.pas. Enota izpostavi runtime simbole, ki jih te knjižnice pričakujejo, hkrati pa ohrani enotno plast Pascalovih deklaracij za gradnji Win32 in Win64

Key Features

  • Skupni runtime most za zlib-ng v načinu, združljivem z zlib, 64-bitno runtime SIMD-dispečeracijo zlib-ng, libjpeg-turbo 3.1.90 z NASM SIMD objekti in 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
  • Združljivost z Win32 prek zlib-ng OMF objektov, zgrajenih z bcc32c, in JPEG/TIFF OMF objektov, zgrajenih z bcc32, iz Lib\thirdparty\Win32
  • Združljivost z Win64 prek datotek COFF64 obj iz Lib\thirdparty\Win64 in objektov zlib-ng COFF iz Lib\thirdparty\Win64x
  • Pomožni tipi velikosti kazalca in Pascalovi pomočniki za simbole, ki jih Delphijev povezovalnik ne more neposredno uvoziti

Visoko zmogljivo jedro JPEG

Standardne poti JPEG temeljijo na libjpeg-turbo 3.1.90 prek klasičnega API, združljivega z libjpeg, ki ga izpostavlja HPDFJpeg.pas. Objektne gradnje Win32, Win64 in Win64x vključujejo ustrezne pospeševalne objekte NASM SIMD, isti priloženi nabor objektov pa je na voljo tudi integracijski plasti TIFF za obravnavo datotek TIFF, stisnjenih z JPEG

Opombe o mostu zlib-ng

Sliki tokovi Flate za Win64 uporabljajo majhen most C okoli enkratnega stiskanja zlib-ng. Most v C ohranja izvorne tipe dolžin zlib-ng znotraj C, hkrati pa ohranja HotPDF-jeve 32-bitne dolžine medpomnilnikov in največje vedenje stiskanja, vidno iz Pascala

Objektne gradnje zlib-ng Win64x in diagnostične MSVC Win64 vključujejo med izvajanjem razporejene izvedbe SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ in AVX2 z generičnimi povratnimi izvedbami. Win32 ohranja generične objekte zlib-ng OMF zaradi združljivosti z bcc32c, medtem ko pot JPEG/TIFF za Win32 ostaja na klasičnih objektih bcc32 OMF

Podprte skupine funkcij

  • 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: Pascalovi ovoji in pomočniki, podprti z WinAPI, ki ustrezajo OMF objektom bcc32c in bcc32, povezanih v vsaki podprti Delphijevi različici 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

Glejte tudi