TZipMaster (porttaus Windowsista Linuxiin)

Anonyymi-ap

On olemassaoleva Delphi -ohjelma, jossa on käytetty TZipMaster -komponenttia.

https://github.com/naadsm/zipmaster

Entä, jos haluaisin muokata ohjelmaani niin, että sen saa kääntymään FreePascal + Lazarus -yhdistelmällä Linuxille.

TZipMaster -komponentti käyttää Windows -käyttöjärjestelmässä kahta DLL -tiedostoa:

ZIPDLL.DLL ja UNZDLL.DLL

Miten saisin vastaavat linux -versiot ZIPDLL.so ja UNZDLL.so ?

Koska Linuxin tapa etsiä noita .so -tiedostoja poikkeaa siitä, miten Windows etsii .DLL -tiedostoja, niin kannattanee ohjelmani Linux -versioon laittaa vaikkapa .INI -tiedosto, jossa jotain tämäntapaista:

[DLLPaths]
ZIPDLL=/home/username/lib/ZIPDLL.so
UNZDLL=/home/username/lib/UNZDLL.so

Mutta, jollen löydä tuosta paketista valmiita kirjastotiedostoja linuxia varten, miten saan käännettyä nuo C -lähdekoodista ?

Tuo olisi kaikkein näppärin ratkaisu, koska silloin ZIPatut datatiedostot olisivat sellaisenaan kelvollisia sekä Windows- että Linux -käyttöjärjestelmissä - eli olisivat käyttöjärjestelmäriippumattomia.

Noiden datatiedostojen datasisältö on jo nyt käyttöjärjestelmäriippumaton, kyse on enää ZIP -pakkauksen ja sen purkamisen toteutuksesta.

3

337

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Käyttäjän .bashrc tiedostoon lisäät rivin:
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/$USER/lib
      Tai lisää se hakemistoon /etc/ld.so.conf.d/ Vaikka tiedostoon zip_unzip.conf, jonka luot itse. Näin linkkeri löytää sen itse kaikille käyttäjille.
      -LD-lataaja ei lataa automaattisesti uusia kirjastoja jo käynnissä olevaan prosessiin, joten jos lisäät vasta käynnistyksen jälkeen so-tiedostoja joudut lataamaan ne itse.
      Siellä lukee: "The DLL source code needs Borland C++ Builder v3 - v6."
      -kokeile kääntää dll uudestaan shared object-moodissa
      Tai pystyykö ohjelman ajamaan wine:llä sellaisenaan ilman mitään käännöksiä? Kuitenkin, jos tarkoituksena on ajaa zip/unzip-ohjelmaa helpointa lienee tehdä wrapperi, joka kutsuu em. ohjelmaa. Tai voi käyttää suoraan libzip-kirjastoa, jolle luo unitin, jolla mappaa c-funktiot pas-funktioiksi.

      • Anonyymi

        "voi käyttää suoraan libzip-kirjastoa, jolle luo unitin, jolla mappaa c-funktiot pas-funktioiksi"

        Mahdollisesti...

        Alkuperäinen TZipMaster -komponentti mahdollistaa esim. yksittäisen tiedoston purkamisen levyllä olevan ZIP -tiedoston sisältä siten, että puretun tiedoston sisältö menee suoraan RAM -muistista varattuun muistialueeseen, eikä mitään väliaikaistiedostoa tarvitse luoda.

        libzip? Löytyykö siitä vastaava toiminnallisuus, vai purkaako vain levytiedostoja kiintolevylle kuten esim tunnettu pkunzip -ohjelma tekee ?


      • Anonyymi
        Anonyymi kirjoitti:

        "voi käyttää suoraan libzip-kirjastoa, jolle luo unitin, jolla mappaa c-funktiot pas-funktioiksi"

        Mahdollisesti...

        Alkuperäinen TZipMaster -komponentti mahdollistaa esim. yksittäisen tiedoston purkamisen levyllä olevan ZIP -tiedoston sisältä siten, että puretun tiedoston sisältö menee suoraan RAM -muistista varattuun muistialueeseen, eikä mitään väliaikaistiedostoa tarvitse luoda.

        libzip? Löytyykö siitä vastaava toiminnallisuus, vai purkaako vain levytiedostoja kiintolevylle kuten esim tunnettu pkunzip -ohjelma tekee ?

        Huomaan libzip:n ongelman. zlib voisi olla toimivampi ratkaisu:
        fpc/units/i386-win32/zlib/
        \fpc\sources\packages\zlib\
        -ilmeisesti tuosta on olemassa paszlib-käännösversio pascalille.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. 6 kW saunan lämmityksestä kohta 10 euron lisämaksu / kerta

      Kokoomuslainen sähköyhtiöiden hallitsema Energiavirasto ehdottaa 5 kW:n rajaa, jonka ylittämisestä tulee lisämaksu. Tark
      Maailman menoa
      251
      7592
    2. Duunarit hylkäsivät vasemmistoliiton, siitä tuli feministinaisten puolue

      Pääluottamusmies Jari Myllykoski liittyi vasemmistoliittoon, koska se oli duunarien puolue. Sitä samaa puoluetta ei enää
      Maailman menoa
      143
      3996
    3. Oppiiko vasemmistolaiset valehtelun jo kotonaan?

      Sillä vasemmistolaiset/äärivasemmistolaiset valehtelee ja keksii asioita omasta päästään todella paljon. Esim. joku vas
      Maailman menoa
      123
      2251
    4. Olen väsynyt tähän

      En osaa lopettaa ja koen huonoa omaatuntoa tästä. Kaikki on muutenkin turhaa ja tekemisesi sattuvat. Tunteita on vain hy
      Ikävä
      26
      1707
    5. Olenko mies sinun mielestä outo?

      Saat vastata rehellisesti.
      Ikävä
      47
      1530
    6. Millasia unelmia sulla on?

      onko unelmia...?
      Ikävä
      33
      1402
    7. Minneapolisin tapauksesta hyvä video

      Runoilijan auto oli poikittain tiellä ja kun poliisit lähestyivät sitä, runotyttö painoi reippaadti kaasua. Auto syöksäh
      Maailman menoa
      342
      1224
    8. Miksi et voi tutustua minuun irl?

      Vastaa yleisellä tasolla/ympäripyöreästi, jos pelkäät tunnistamisia.
      Ikävä
      141
      1022
    9. Tiesitkö? Uusi Bachelor on raivannut tietään määrätietoisesti somessa, myös Böckermanin ex-rakas!

      Arttu Kilpeläinen tuli julkisuuteen Pernilla Böckermanin rakkaana. Pariskunta päätyi eroon v. 2024. Ex-poliisi Kilpelä
      Suomalaiset julkkikset
      8
      983
    10. Milloin palaat

      Odotan niin kauan kun vaan jaksan toivoa. Tiedät että sua jäi joku ikävöimään. ❤️
      Ikävä
      23
      958
    Aihe