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 :

LIB personnelle


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut LIB personnelle
    Bonjour à tous et à toutes,

    Alors voilà, comme certaines personnes j'en ai marre de réecrire quelques fonctions à chaque fois que j'ai envie de programmer quelque chose donc je souhaite avoir un tuiyau (tuto, reflexion,...) sur l'écriture des librairie .a en C.

    J'ai penser à rassembler mes fonctions dans un ".h" et l'inclure à chaque fois mais bon je me suis dis que peut être c'été mieux de créer carrément une lib.

    Merçi
    Compil your life guy!
    The Aures Project

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: LIB personnelle
    Citation Envoyé par Goundy
    Alors voilà, comme certaines personnes j'en ai marre de réecrire quelques fonctions à chaque fois que j'ai envie de programmer quelque chose donc je souhaite avoir un tuyau (tuto, reflexion,...) sur l'écriture des librairie .a en C.
    Essaye d'étudier ceci :

    http://emmanuel-delahaye.developpez....m#bibliotheque
    http://emmanuel-delahaye.developpez.com/clib.htm

    si tu ne comprends pas, pose des questions.
    J'ai penser à rassembler mes fonctions dans un ".h" <...>
    Mauvais design. A lire en entier :

    http://emmanuel-delahaye.developpez.com/codage.htm

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut
    si tu es sous dev-cpp, tu fait fichier -> nouveau projet puis static lib et ca te generera des .a que tu peux linker a tes projets.

    j'en fait moi aussi une(j'ai commence aujourd'hui, j'ai code un nouveau fprintf et fscanf qui gere egalement le binaire)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Par défaut
    Ca m'interesserais d'avoir les sources de ce fprintf, c'est possible?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut
    oui, sans probleme, de toute facon, ma lib sera open source(je compte gerer au depart les fonctions io amelioree, puis des sockets ameliorees(non-blocantes mais avec choix du temps d'attente), cryptage md5, transformation bmp -> tableau de byte, transformation du .3ds en coordonnees xyz plus coordonnees de textures, et pour finir, gestion du .avi.

    le code de mon fprintf et fscanf est ici :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    #include <stdio.h>
    #include <stdarg.h>
     
    int pejaxx_fprintf(FILE *fichier,char *text,...){
    va_list varg;
    va_start(varg, text); 
    char buffer[256*256];
    int i,ajout=0;
    for(i=0;i<strlen(text);i++){
      if(text[i]!='%')buffer[i+ajout]=text[i];
      else {
       char temp[256];                                     
      if(text[i+1]=='d'){
      sprintf(temp,"%d",va_arg(varg,int));
      strcat(buffer,temp);
      ajout+=strlen(temp)-2;
      }   
      if(text[i+1]=='f'){
      sprintf(temp,"%f",va_arg(varg,double));
      strcat(buffer,temp);
      ajout+=strlen(temp)-2;
      }   
      if(text[i+1]=='s'){
      sprintf(temp,"%s",va_arg(varg,char*));
      strcat(buffer,temp);
      ajout+=strlen(temp)-2;
      } 
      if(text[i+1]=='x'){
      sprintf(temp,"%x",va_arg(varg,void*));
      strcat(buffer,temp);
      ajout+=strlen(temp)-2;
      }    
      if(text[i+1]=='b'){ 
      fprintf(fichier,buffer);
      ajout = -(i+2);
      void* test = va_arg(varg,void*);
      fwrite(test,sizeof(test),1,fichier);
      memset(buffer,0,sizeof(buffer));
      } 
      i++;  
      }
    }
    va_end(varg);
    fprintf(fichier,buffer);
    return 1;
    }
     
    int pejaxx_fscanf(FILE *fichier,char *text,...){
    va_list varg;
    va_start(varg, text); 
    int i,ajout=0;
    char rien;
    for(i=0;i<strlen(text);i++){
      if(text[i]=='%'){
      printf("reussi : %c\n",text[i]);
      if(text[i+1]=='d'){
      fscanf(fichier,"%d",va_arg(varg,int*));
      }
      if(text[i+1]=='f'){
      fscanf(fichier,"%f",va_arg(varg,float*));
      }
      if(text[i+1]=='s'){
      fscanf(fichier,"%s",va_arg(varg,char*));
      }
      if(text[i+1]=='x'){
      fscanf(fichier,"%x",va_arg(varg,void*));
      }
      if(text[i+1]=='b'){
      void *test = va_arg(varg,void*);
      fread(test,sizeof(test),1,fichier);
      printf("%f\n",(float*)test);
      }
      i++;
      }
    }
    va_end(varg);
    return 1;
    }

Discussions similaires

  1. problème de compatibilité de .lib
    Par projet_chu dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/11/2003, 17h05
  2. Chargement d'une lib partagée C++ dans un programme C
    Par Zero dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 30/09/2003, 16h40
  3. inclure une librairie *.lib
    Par darkbm dans le forum C
    Réponses: 2
    Dernier message: 16/12/2002, 22h48
  4. Réponses: 2
    Dernier message: 17/03/2002, 19h00

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