|
Cross-Platform C Library Integration
Yleiskatsaus
HotPDF käyttää tiedostoa HPDFCLibs.pas Pascal-rajapintana Delphin ja HPDFZLib.pas-, HPDFJpeg.pas- ja HPDFTiff.pas-tiedostojen käyttämien staattisesti linkitettyjen C-objektitiedostojen välillä. Yksikkö tuo näkyville runtime-symbolit, joita kyseiset kirjastot odottavat, säilyttäen samalla yhden yhtenäisen Pascal-esittelykerroksen sekä Win32- että Win64-versioille
Key Features
- Jaettu ajonaikainen silta zlib-ng-kirjastolle zlib-yhteensopivassa tilassa, zlib-ng:n 64-bittisen ajonaikaisen SIMD-jakelulle, libjpeg-turbo 3.1.90 -kirjastolle NASM SIMD -objekteilla sekä libtiff 4.7.1 -kirjastolle
- Muisti-, stdio-, merkkijono-/merkki- ja valittujen matematiikka-/runtime-apuohjelmien kattavuus
- 32-tavuisesti kohdistettu malloc-, free-, realloc- ja calloc-silta SIMD-ystävällisille natiivipuskureille
- Win32-yhteensopivuus bcc32c-kääntäjällä luotujen zlib-ng OMF -objektien ja bcc32-kääntäjällä luotujen JPEG/TIFF OMF -objektien kanssa polusta Lib\thirdparty\Win32
- Win64-yhteensopivuus polusta Lib\thirdparty\Win64 peräisin olevien COFF64 obj -tiedostojen ja polusta Lib\thirdparty\Win64x peräisin olevien zlib-ng COFF -objektien kanssa
- Osoittimen kokoiset aputyypit ja Pascal-tynkäkoodit symboleille, joita Delphi-linkkeri ei voi tuoda suoraan
High-Performance JPEG Backend
Standardit JPEG-työnkulut perustuvat libjpeg-turbo 3.1.90 -kirjastoon perinteisen libjpeg-yhteensopivan API:n kautta, jonka HPDFJpeg.pas tarjoaa. Win32-, Win64- ja Win64x-objektiversiot sisältävät asianmukaiset NASM SIMD -kiihdytysobjektit, ja sama paketoitu objektijoukko on myös TIFF-integraatiotason käytettävissä JPEG-pakattujen TIFF-tiedostojen käsittelyyn
Zlib-ng Bridge Notes
Win64 Flate -kuvavirrat käyttävät pientä C-siltaa zlib-ng-kertapakkauksen ympärillä. Silta säilyttää natiivit zlib-ng-pituustyypit C-kielessä samalla kun se säilyttää HotPDF-kirjaston Pascal-puoleiset 32-bittiset puskurinpituudet ja maksimaalisen pakkauskäyttäytymisen
Win64x- ja diagnostiikka-MSVC Win64 zlib-ng -objektiversiot sisältävät ajonaikaisesti jaetut SSE2-, SSSE3-, SSE4.1-, SSE4.2-, PCLMULQDQ- ja AVX2-toteutukset geneerisillä vararatkaisuilla. Win32 säilyttää geneeriset zlib-ng OMF -objektit bcc32c-yhteensopivuutta varten, kun taas Win32 JPEG/TIFF -polku käyttää edelleen klassisia bcc32 OMF -objekteja
Tuetut funktioryhmät
- Muistinhallinta: malloc, free, realloc, calloc 32 tavun kohdistetulla varauksella
- Tiedosto- ja virtatoiminnot: fopen, fclose, fputc, fread, fwrite, fflush, ferror
- Merkkijono- ja merkkifunktiot: strcpy, sprintf, memcpy, memmove, memset, tolower, toupper, towlower, towupper, getenv, atoi
- Ajonaikaiset apuohjelmat: ftol, setjmp, log, snprintf, memcmp
Architecture Support
- Win32: Pascal-kääreet ja WinAPI-pohjaiset apuohjelmat, jotka vastaavat bcc32c- ja bcc32 OMF -objekteja, joita jokainen tuettu Delphin Win32-versio linkittää
- Win64: msvcrt.dll-tuonnit sekä pienet aputyngät, joita MSVC:n luomat COFF64-objektit edellyttävät
- Yleiset tyypit: PtrInt ja PtrUInt pitävät osoittimen kokoiset määrittelyt kohdistettuina molemmissa kohteissa
See Also
|