gzip // #define probleme



  • Hallo,

    hat schon mal jemand probiert eine gzip-dll zu verwenden?

    Ich habe nämlich ein kleines Problem mit der www.gzip.org/zlib - hat die jemand schon benutzt?
    Mein Problem ist folgendes:

    1. sagt die Doku, dass ich es mit der option -a compilen muss (die schreiben 4-byte alignment) - wenn ich das aber richtig sehe, dann wäre -a4 4-byte alignment, bzw. options->Advanced Compiler->Data alignment->Double Word

    stimmt ihr mir da zu?

    beschwert sich der compiler bei folgendem:

    typedef unsigned char Byte;
    ...
    #ifdef SMALL MEDIUM
     /* Borland C/C++ and some old MSC versions ignore FAR inside typdef */
    # define Bytef Byte FAR
    #else
    
      typedef Byte  Bytef FAR
    #endif
    

    - da sagt er: Zeile typedef Byte Bytef FAR
    Ambiguity between "Byte" and "System::Byte"

    Hat da einer ne Idee?

    ich hab mal probehalber gesagt:

    typedef unsigned char Byteg;
    
    #ifdef SMALL MEDIUM
     /* Borland C/C++ and some old MSC versions ignore FAR inside typdef */
    # define Bytef Byteg FAR
    #else
    
      typedef Byteg  Bytef FAR
    #endif
    

    -- dann compiliert er zwar, aber die routine inflate(..) meldet immer noch: data_error:(

    könnt Ihr mir ein paar Tipps geben?

    Danke!



  • Das liegt an der Include-Reihenfolge. zeig mal den Code wo du die Includes reingeschrieben hast...

    -junix



  • #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <Buttons.hpp>
    #include "startbar.h"
    #include <stdio>
    #include <assert.h>
    
    #include <zconf.h>
    #include <zlib.h>
    


  • Schieb mal Z-dingsda jeweils ganz nach oben. (so interessehalber)



  • hallo,

    danke, aber das ändert leider gar nichts:)

    ich habe aber mittlerweile noch ein paar sachen ausprobiert und bin auf folgende interessante tatsachge gestoßen:

    wenn ich etwas mit "meinem" gzip programm komprimiere, dann kommt eine .gz heraus, die für winrar ungültig, für "mein" programm jedoch lesbar ist.

    und genauso umgekehrt (eine "normale; korrekt" komprimierte .gz ist für mein programm ungültig, aber alle anderen programme können es problemlos übersetzen

    ich *glaube* es hat was mit dem alignment zu tun - auf jeden fall hat es bestimmt was mit dem cbuilder und irgendner einstellung zu tun, die nicht "c-like" ist (klar - ist ja c++ - aber da muss es irgendwas geben, was bspw. ein byte so bestimmt, dass der gzip algorithmus der zlib nicht funktioniert)...

    hast du ne vorstellung, was das sein könnte?


Anmelden zum Antworten