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

307

    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. Miksi persuilla ei ole firmoja?

      Kuten vasemmisstolaisilla, esim. Sannalla MA\PI. Eikö ole aika erikoista?
      Maailman menoa
      83
      7111
    2. Persut hommasivat Suomeen 35 000 pientä lasta v. 2015

      Onko Riikka Purra nyt tavoittelemassa tätä samaa historiallista persujen utopiaa? Purram kaksinaamaisessa pelissä vaadit
      Maailman menoa
      26
      7063
    3. Purran tuhoja tuskin saadaan koskaan korjatuksikaan

      Purra on aiheuttanut Suomen taloudelle karmaisevat tuhot. Sen lisäksi Purra on ajanut myös suuren osan Suomen kansasta k
      Maailman menoa
      109
      6168
    4. Persujen kaksoisstandardit: Räsäsen uhkailu paha, Virran uhkailu hyvä

      Tässä taas nähdään kuinka kaksinaamaista porukkaa persut ovat. Mitäs persut tähän?
      Maailman menoa
      45
      5414
    5. Miksette persut irtisanoudu Kirkin lausunnoista?

      Kirkhän muun muassa vaati raiskattuja naisia pidättäytymään abortista ja vaimoja alistumaan aviomiestensä tahtoon. Mik
      Maailman menoa
      84
      5238
    6. Demarikultin uhri kertoo

      Demarikultin uhri kertoo: “En saanut mennä edes suihkuun ilman lupaa” – Seksuaalisen hyväksikäytön uhri kertoo vuosistaa
      Maailman menoa
      63
      5205
    7. Miksi vasemmistolaiset eivät omista yhtään firmaa?

      Vasemmistolaiset eivät omista yhtään firmaa joka työllistäisi ihmisiä. Miksi? No siksi, että jos vasemmistolainen perus
      Maailman menoa
      40
      5108
    8. Sanna valittiin Euroopan huonoimmaksi pääministeriksi

      Sannan kaudella Suomi oli ainut maa missä bkt laski. Kannattaa huomata, että luvut valitsi Sannan huonoimmaksi. Ihmiset
      Maailman menoa
      27
      4595
    9. Purran vuoro kiihoittua Lepomäen sääristä

      "Ulkoministeri Elina sanoo, ettei muuta pukeutumistaan sen mukaan, kenet tapaa, ja että hän ei suostuisi peittämään kasv
      Maailman menoa
      17
      3477
    10. Vasemmistolaiset paskat eivät nousseet seisomaan kun Akaan kaupunginvaltuusto

      vietti hiljaisen hetken Charlie Kirkin muistoksi https://www.aamulehti.fi/uutiset/art-2000011523016.html
      Maailman menoa
      300
      3390
    Aihe