Integrasi Library C Lintas Platform

Ikhtisar

HotPDF menggunakan HPDFCLibs.pas sebagai jembatan yang terlihat dari sisi Pascal antara Delphi dan file objek C yang dilink statis yang dipakai oleh HPDFZLib.pas, HPDFJpeg.pas, dan HPDFTiff.pas. Unit ini mengekspos simbol runtime yang diharapkan library tersebut sambil menjaga satu lapisan deklarasi Pascal yang konsisten untuk build Win32 dan Win64

Fitur utama

  • Jembatan runtime bersama untuk zlib-ng dalam mode kompatibel zlib, dispatch SIMD runtime 64-bit zlib-ng, libjpeg-turbo 3.1.90 dengan objek SIMD NASM, dan libtiff 4.7.1
  • Cakupan helper memory, stdio, string/character, dan beberapa helper math/runtime yang dipilih
  • Jembatan malloc, free, realloc, dan calloc yang disejajarkan 32 byte untuk buffer native yang ramah SIMD
  • Kompatibilitas Win32 dengan objek OMF zlib-ng yang dibangun bcc32c dan objek OMF JPEG/TIFF yang dibangun bcc32 dari Lib\thirdparty\Win32
  • Kompatibilitas Win64 dengan file objek COFF64 dari Lib\thirdparty\Win64 dan objek COFF zlib-ng dari Lib\thirdparty\Win64x
  • Jenis helper berukuran pointer dan stub Pascal untuk simbol yang tidak dapat diimpor langsung oleh linker Delphi

Backend JPEG berkinerja tinggi

Alur kerja JPEG standar didukung oleh libjpeg-turbo 3.1.90 melalui API klasik yang kompatibel dengan libjpeg dan diekspos oleh HPDFJpeg.pas. Build objek Win32, Win64, dan Win64x menyertakan objek akselerasi SIMD NASM yang relevan, dan set objek bundel yang sama juga tersedia untuk lapisan integrasi TIFF untuk penanganan TIFF terkompresi JPEG

Catatan jembatan zlib-ng

Stream gambar Flate Win64 memakai jembatan C kecil di sekitar kompresi satu kali zlib-ng. Jembatan ini menjaga tipe panjang asli zlib-ng tetap di dalam C sambil mempertahankan panjang buffer 32-bit yang terlihat dari Pascal dan perilaku kompresi maksimum HotPDF

Build objek zlib-ng Win64x dan MSVC Win64 untuk diagnostik menyertakan implementasi SSE2, SSSE3, SSE4.1, SSE4.2, PCLMULQDQ, dan AVX2 yang dipilih saat runtime dengan fallback generik. Win32 tetap memakai objek OMF zlib-ng generik agar kompatibel dengan bcc32c, sementara jalur JPEG/TIFF Win32 tetap berada pada objek OMF bcc32 klasik

Kelompok fungsi yang didukung

  • Manajemen memory: malloc, free, realloc, calloc dengan alokasi sejajar 32 byte
  • Operasi file dan stream: fopen, fclose, fputc, fread, fwrite, fflush, ferror
  • Fungsi string dan karakter: strcpy, sprintf, memcpy, memmove, memset, tolower, toupper, towlower, towupper, getenv, atoi
  • Helper runtime: ftol, setjmp, log, snprintf, memcmp

Dukungan arsitektur

  • Win32: Wrapper Pascal dan helper berbasis WinAPI yang cocok dengan objek OMF bcc32c dan bcc32 yang dilink oleh setiap versi Delphi Win32 yang didukung
  • Win64: impor msvcrt.dll plus stub helper kecil yang dibutuhkan oleh objek COFF64 hasil MSVC
  • Jenis umum: PtrInt dan PtrUInt menjaga deklarasi berukuran pointer tetap selaras di kedua target

Lihat juga