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.

4

392

    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. Onko kaivattusi ulkonäkö

      tarpeeksi miellyttävä? 🥕
      Ikävä
      55
      1206
    2. Toivotko koskaan mies...

      Että nähtäis ja aloitettais alusta, puhtaalta pöydältä tutustuminen. Olit oikeassa ei me kunnolla tunnettu. Olin hölmö.
      Ikävä
      91
      1189
    3. Tämän päivän puukotusuutinen

      Epäillyn tuntomerkit? Nisti vai matu? Laittaisin betsit jälkimmäiselle.
      Seinäjoki
      17
      1040
    4. Svty paska työpaikka

      Elekää kukaan hakeku sinne töihin.
      Suomussalmi
      17
      888
    5. Olisin valmis salaisiin tapaamisiin

      Juuri sinun kanssasi mies. Olet saanut minun pääni pyörälle ja ajatukseni pyörimään ympärilläsi. Hittoon velvollisuudet
      Intohimo
      45
      793
    6. Kyllä näin 45 vuotiaana miehenä pitää sanoo, että 40-50v naiset näyttää vanhoilta

      Niin väsynyttä, silmäryppyä, harmaata hiusta jne jne
      Ikävä
      112
      778
    7. Olisit voinut olla...

      ....ihan tavallinen ihminen, terve mieleltään ja kropaltaan, hyvä seuraihminen ja luotettava kumppani. Mutta ei, olit n
      Ikävä
      64
      732
    8. Onko viisikko aktivoitunut

      Taas ruumis !! Viisikko ryskää kukaan ei pärjää
      Seinäjoki
      12
      707
    9. Olet ihana mies

      Mun söpöliini 🙊😘
      Ikävä
      38
      619
    10. YT skoda Transtech

      Noin 200 saa potkut. Saksikäsipetturi ajoi suomen konkkaan ja tarkkikselle. Totaalinen Petosjytky..
      Kajaani
      72
      603
    Aihe