IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Dll de compression de fichiers


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 64
    Par défaut Dll de compression de fichiers
    Bonjour,

    Je suis á la recherche d'une dll de compression de fichiers. En fait j'ai développé une application qui enregistre des données dans de fichiers binaires et la taille de fichiers et très grande de l'ordre de la centaine de megas. L'information dans le fichier est redondante donc avec des compression de type zip je tombe a la dizaine des megas facile.

    Je cherche alors une dll de compression zip qui soit libre et qui puisse se distribuer de manière commercial. Je suis allé chercher du cote de 7 zip et j'ai trouvé des dll mais je ne trouve pas de tutorial ou des exemples d'utilisation.

    Avez vous des idées ou des pistes pour mon problème?

    Merci

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 117
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Il ne vous faut pas seulement des dll de compression, mais une bibliothèque ( entière ) pour faire de la compression dans votre projet.
    Je vous conseille la bibliothèque libre zlib pour ce faire.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Que dis-tu de rar.exe et unrar.exe ? Ils sont gratuits et s'utilisent très facilement en ligne de commande. Sinon il y a aussi la bibliothèque zlib qui est une des plus utilisées à ce jour. Il y en a encore tellement d'autres mais on peut s'arrêter là je pense. Google est également ton ami.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 64
    Par défaut
    Bonjour,

    Merci pour vos réponses. Effectivement j'ai vu du côte de zlib elle me semble assez complète. Par contre j'ai l'habitude de attaquer les fonctions d'une dll de cette façon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    // dans le fichier header de la dll je retrouve la déclaration des fonctions :
    void __stdcall UpdateComPanel(int flag_on_off);
     
    // Je recopie donc dans mon code pour ne pas inclure le fichier h 
    typedef void __stdcall (*FN_UPDATECOMPANEL) (int flag_on_off);
     
    // Et pour utiliser la fonction
    HMODULE mon_module_dll;
     
    mon_module_dll = LoadLibrary(chemin_ma_dll);
    FN_UPDATECOMPANEL fptrUpdateComPanel; 
     
    fptrUpdateComPanel = (FN_UPDATECOMPANEL)GetProcAddress(mon_module_dll,FN_NAME_UPDATECOMPANEL); 
     
    fptrUpdateComPanel(1);
    De cette façon j'attaque la dll en prennant l'adresse de la fonction dans la dll.
    Mais je ne sais pas si je peux faire la même chose avec zlib ça l'air complexe et je suis un peu perdu car je ne trouve pas le stdcall.

  5. #5
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Cette méthode que tu as l'habitude d'utiliser, c'est la méthode ultime, à n'utiliser qu'en dernier recours, lorsque c'est la seule solution. La raison est qu'elle est tout simplement fastidieuse. Ou bien quand tu appelles printf par exemple tu préfères faire un LoadLibrary ou GetModuleHandle de msvcrt.dll, faire un GetProcAdress de "_printf" (qui est une fonction __cdecl et non __stdcall en passant) pour enfin utiliser le pointeur retourné ou tout simplement te lier avec la lib C (fait automatiquement par ton compilo), inclure stdio.h et appeler la fonction ? C'est pareil avec zlib ou n'importe quelle autre bibliothèque tierce : utiliser le couple .lib + .h au lieu de LoadLibrary + GetProcAddress, tant qu'on peut. Et d'habitude on peut, si la bibliothèque n'a pas été "volée". Il faut bien sûr que lises la doc de la bibliothèque pour savoir l'utiliser ...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 64
    Par défaut
    Merci pour votre aide et désolé pour la réponse tardive j'ai pu utiliser la librairie zlib et j'ai crée une petite dll qui va compresser et décompresser des fichiers.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. compresser un fichier à partir d'une application
    Par Julian21 dans le forum C++
    Réponses: 6
    Dernier message: 20/06/2007, 22h32
  2. Compression de fichier
    Par bandit boy dans le forum C++Builder
    Réponses: 6
    Dernier message: 04/05/2006, 15h58
  3. Compression de fichiers
    Par BilTCD dans le forum Windows
    Réponses: 2
    Dernier message: 03/08/2005, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo