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

Dev-C++ Discussion :

lier une librairie en tant que librairie statique :(


Sujet :

Dev-C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut lier une librairie en tant que librairie statique :(
    bonjour,

    je recherche un moyen de lier statiquement
    la librairie "libmad" (décodeur de flux mpeg audio ^^ )
    a un de mes programmes

    le problème est que bien que le compilateur ne génère
    pas d'erreur lorsque je compile un exemple de code
    ( en incluant "mad.h" ),
    le lieur lui génère l'erreur suivante
    test.cpp:(.text+0xd): undefined reference to `mad_stream_init'
    comme si le lieur cherchait un librairie externe :/

    hors je désire faire une compilation avec libmad intégré dans mon programme
    ( plutôt que d'avoir a compiler la librairie séparément dans une DLL )


    svp pourriez-vous m'aider a résoudre mon problème ?

    merci.


    note : pour info je n'utilise pas dev c++ directement
    j'utilise mingw avec l'editeur "conTEXT"

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    j'ai fait une recherche avec "mad_decoder_init"
    dans les fichiers du repertoire "libmad"
    ( contenant les codes sources de la librairie )

    la recherche a donné:
                   - decode.c
                   - stream.c
                   - decode.h
                   - stream.h
                   - mad.h
    j'ai donc inclus decode.c et stream.c
    ( mad.h etant déjà inclus, et
    decode.h et stream.h étant inclus par decode.c
    je ne les ai pas rajoutés )

    j'ai compilé le programme les messages du lieur
    ont disparu ... remplacés par des messages
    d'erreurs du compilateur


    les voici :

    > Exécution: C:\Program Files\ConTEXT\ConExec.exe "C:\Program Files\ConTEXT\MinGW\TEST.BAT" "C:\Documents and Settings\Administrateur.-\Bureau\madxlib3\test.cpp" "C:\Documents and Settings\Administrateur.-\Bureau\madxlib3\test.exe"


    In file included from C:\Documents and Settings\Administrateur.-\Bureau\madxlib3\test.cpp:21:

    ...libmad\decoder.c: In function `void mad_decoder_init(mad_decoder*, void*, mad_flow (*)(void*, mad_stream*), mad_flow (*)(void*, const mad_header*), mad_flow (*)(void*, const mad_stream*, mad_frame*), mad_flow (*)(void*, const mad_header*, mad_pcm*), mad_flow (*)(void*, mad_stream*, mad_frame*), mad_flow (*)(void*, void*, unsigned int*))':

    ...libmad\decoder.c:76: error: invalid conversion from `int' to `mad_decoder_mode'

    ...libmad\decoder.c: In function `mad_flow error_default(void*, mad_stream*, mad_frame*)':

    ...libmad\decoder.c:299: error: invalid conversion from `void*' to `int*'

    ...libmad\decoder.c: In function `int mad_decoder_run(mad_decoder*, mad_decoder_mode)':

    ...libmad\decoder.c:553: error: invalid conversion from `void*' to `mad_decoder::<anonymous struct>*'
    > Exécution


    voila les lignes de codes corespondantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ligne 76 :
         decoder->mode         = -1;
    ligne 299:
         int *bad_last_frame = data;
    ligne 533:
         decoder->sync = malloc(sizeof(*decoder->sync));

    cela n'a pas marché ... je commence à désespérer :'(

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Euh, attends, c'est pas normal, tu inclus un .c dans un .cpp...

    C'est du code en langage C qui ne compile pas en C++. Tu dois compiler directement les .c

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    aie dommage

    serait-il possible de compiler le code source de libmad
    vers un fichier "liblibmad.a" ( par exemple )
    pour pouvoir ensuite l'importer en tant que librairie ?

    si c'est le cas pourriez-vous m'aider en me montrant la marche a suivre ? ^^



    j'ai aussi d'autres question concernant les librairies :

    j'aimerait savoir si il existe un moyen de lier toute les librairies du repertoire "lib" a mon programme sans pour
    autant en augmenter la taille ?

    lorsque une librairie en .a est incluse est-ce que
    toutes les fonctions exportés qu'elle contient sont
    inserées dans le fichier ?
    ( meme celles que je n'utilise pas ? )




    merci

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut RANLIB buggé T_T
    bon g trouvé les reponses a mon probleme sur internet...
    mais il ya malheureusement un bug dans RANLIB.EXE :/


    voila le source d'un fichier en .bat :


    %0\..\BIN\GCC.EXE "C:\Documents and Settings\Administrateur.-\Bureau\madxlib3\libmad\mad.h" -o libmad.o

    %0\..\BIN\AR.EXE -rvs libmad.a libmad.o

    %0\..\BIN\RANLIB.EXE libmad.a


    la premiere ligne produit un fichier libmad.o a partir de mad.h

    la deuxieme ligne convertir le fichier libmad.o en libmad.a

    troisieme ligne :
    quand jai essayé de compiler un programme avec le fichier crée a partir des deux lignes precedente, le lieur m'a signalé l'erreur suivante :

    libmad.a: could not read symbols: Archive has no index; run ranlib to add one


    j'ai donc rajouter la troisieme ligne au fichier .bat
    j'ai recompilé la librairie et mon programme ...
    et bien le message d'erreur est toujours la :/

    ranlib.exe a l'air buggé et malheureusement je ne sait pas comment faire pour produire un fichier .a autrement ...


    svp, quelqu'un aurait t'il une solution a me proposé ?


    merci d'avance.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    bonjour

    si ça continue je vais renoncer à GCC moi -_-

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     extern "C"
     {
        #include "libmad\mad.h"
        #include "libmad\decoder.c" 
        #include "libmad\stream.c" 
     }
    ne fonctionne pas ...

    * grosse déprime ... *

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Citation Envoyé par Celui qu'on ne lit pas
    Euh, attends, c'est pas normal, tu inclus un .c dans un .cpp...

    C'est du code en langage C qui ne compile pas en C++. Tu dois compiler directement les .c

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut probleme resolu ... grace a du bidouillage ^^;
    voila je respire .. enfin :]

    j'ai crée un fichier "mad.h" dans un autre dossier
    contenant une reference a tout les fichier .h et .c
    ( sauf minimad.c ) presents dans le repertoire de libmad
    et g compilé ( sur le coup cela n'a pas marché )

    alors j'ai eu l'idée de rajouter -x c et la ca a marché,
    les compilations de "libmad.a" puis de "test.cpp" ont reussies ^^

    d'ailleur un test de "nm.exe" signale que toute les fonction sont presente ( sauf alloc et consort evdiamment )

    dommage que l'on ne m'ai pas beaucoup aidé
    pour trouver cette solution :/

    ++

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Parce que normalement, c'est censé marcher sans bidouillage.
    • Tu compiles les .c,
    • Tu tu compiles les .cpp (au besoin en mettant extern "C" {} autour des .h)
    • Et tu linkes le tout.
    Et là, normalement, ça marche.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    bonjour ^^

    j'ai nouveau probleme a vous soumetre ^^'

    il est lié a la compilation des librairies zlib et jpeglib
    ( c'est curieux en faite les deux librairies proviennent
    d'auteur different mais GCC produit les meme messages
    d'erreurs ... )

    apparament les erreurs seraient liées a GCC qui refuserait
    de "redefinir les typedef"

    cela genere des colisions entre des fichiers
    qui sont pourtant indispensables a la compilation

    j'aimerai savoir si il existe un moyen de forcer mingw
    a accepter le redefinition des typedef
    sans generer de messages d'erreurs

    pourriez-vous me montrer la marche a suivre ?

    merci

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    C'est en compilant les bibliothèques (séparément, j'espère!) ou un programme qui les utilise?

    PS: On peut avoir un échantillon des erreurs et du code qui les provoque?

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    voici un exemple d'erreur :

    C:\Documents and Settings\Administrateur.-\Bureau\_Flash_\directx\jpeg\/jdcoefct.c:60: error: conflicting types for 'my_coef_controller'

    C:\Documents and Settings\Administrateur.-\Bureau\_Flash_\directx\jpeg\/jctrans.c:221: error: previous declaration of 'my_coef_controller' was here
    code du premier fichier :


    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
    /* Private buffer controller object */
     
    typedef struct {
      struct jpeg_d_coef_controller pub; /* public fields */
     
      /* These variables keep track of the current location of the input side. */
      /* cinfo->input_iMCU_row is also used for this. */
      JDIMENSION MCU_ctr;		/* counts MCUs processed in current row */
      int MCU_vert_offset;		/* counts MCU rows within iMCU row */
      int MCU_rows_per_iMCU_row;	/* number of such rows needed */
     
      /* The output side's location is represented by cinfo->output_iMCU_row. */
     
      /* In single-pass modes, it's sufficient to buffer just one MCU.
       * We allocate a workspace of D_MAX_BLOCKS_IN_MCU coefficient blocks,
       * and let the entropy decoder write into that workspace each time.
       * (On 80x86, the workspace is FAR even though it's not really very big;
       * this is to keep the module interfaces unchanged when a large coefficient
       * buffer is necessary.)
       * In multi-pass modes, this array points to the current MCU's blocks
       * within the virtual arrays; it is used only by the input side.
       */
      JBLOCKROW MCU_buffer[D_MAX_BLOCKS_IN_MCU];
     
    #ifdef D_MULTISCAN_FILES_SUPPORTED
      /* In multi-pass modes, we need a virtual block array for each component. */
      jvirt_barray_ptr whole_image[MAX_COMPONENTS];
    #endif
     
    #ifdef BLOCK_SMOOTHING_SUPPORTED
      /* When doing block smoothing, we latch coefficient Al values here */
      int * coef_bits_latch;
    #define SAVED_COEFS  6		/* we save coef_bits[0..5] */
    #endif
    } my_coef_controller;
     
    typedef my_coef_controller * my_coef_ptr;
    code du second :
    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
    /* Private buffer controller object */
     
    typedef struct {
      struct jpeg_c_coef_controller pub; /* public fields */
     
      JDIMENSION iMCU_row_num;	/* iMCU row # within image */
      JDIMENSION mcu_ctr;		/* counts MCUs processed in current row */
      int MCU_vert_offset;		/* counts MCU rows within iMCU row */
      int MCU_rows_per_iMCU_row;	/* number of such rows needed */
     
      /* Virtual block array for each component. */
      jvirt_barray_ptr * whole_image;
     
      /* Workspace for constructing dummy blocks at right/bottom edges. */
      JBLOCKROW dummy_buffer[C_MAX_BLOCKS_IN_MCU];
    } my_coef_controller;
     
    typedef my_coef_controller * my_coef_ptr;
    les deux structures se ressemblent beaucoup ...

    hier je me suit fait un petit programme en c
    pour compiler séparément les fichier du répertoire jpeglib

    auparavant g pris le soin d'enlever les fichier inutile
    ( comme les fichier d'exemples )
    en me basant sur filelist.doc

    le programme compile chaque fichier .c
    grâce à gcc.exe puis les lie avec ar.exe et ranlib.exe

    la compilation du fichier libjeg.a a réussie sans générer de messages d'erreurs ( ouf ^^' )



    j'ai aussi essayé de créer une classe encapsulant
    les fonctions des décodages de libjeg
    en m'inspirant du code de freeimage
    cela n'a pas marché :/


    voici les messages d'erreur que je reçois :


    ...\jpeglib.h:917: error: `FILE' has not been declared
    ...\jpeglib.h:917: error: ISO C++ forbids declaration of `outfile' with no type
    ...\jpeglib.h:918: error: `FILE' has not been declared
    ...\jpeglib.h:918: error: ISO C++ forbids declaration of `infile' with no type


    ...\decoder.cpp:35: error: new types may not be defined in a return type
    ...\decoder.cpp:35: error: `bool' is now a keyword
    ...\decoder.cpp:35: error: prototype for `JPEG_DECODER JPEG_DECODER::init(void*, int)' does not match any in class `JPEG_DECODER'
    ...\decoder.cpp:26: error: candidate is: bool JPEG_DECODER::init(void*, int)
    ...\decoder.cpp:35: error: `JPEG_DECODER JPEG_DECODER::init(void*, int)' and `bool JPEG_DECODER::init(void*, int)' cannot be overloaded
    ...\decoder.cpp: In member function `JPEG_DECODER JPEG_DECODER::init(void*, int)':
    ...\decoder.cpp:38: error: invalid conversion from `void*' to `const JOCTET*'
    ...\decoder.cpp:60: error: conversion from `bool' to non-scalar type `JPEG_DECODER' requested
    ...\decoder.cpp:67: error: conversion from `bool' to non-scalar type `JPEG_DECODER' requested
    ...\decoder.cpp:82: error: conversion from `bool' to non-scalar type `JPEG_DECODER' requested
    > Exécution

    apparemment l'un des bugs recurants de JPEG_DECODER
    viendrait du faite que ses methodes retournent un booleen ...

    par exemple j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inline bool  JPEG_DECODER::init( void *input_buffer, int input_buffer_size )
    je comprend pas pourquoi le compilateur refuse de la compiler :/

    sinon je n'ai aucune idée d'ou peuvent provenir
    ces erreurs de compilation.


    pourriez vous m'aider a resoudre ces bug ? ^^


    merci

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    1. La première erreur signifie que tu essayais de compiler jpeglib en faisant un grand fichier .c qui incluait tous les autres... Tu sais, quand des fichiers sont séparés, ça peut être qu'il y a une raison
    2. La seule structure "FILE" que je connaisse, c'est celle de <stdio.h>. Essaie donc d'inclure <stdio.h> avant jpeglib.h (ou <cstdio> puisqu'apparemment, tu codes en C++).

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    pourtant compiler les fichier .c en une foi
    cela avait marché avec libmad

    alors je me suit dit que ça marcherait aussi avec
    les autres lib, j'avais tord ^^

    merci pour le include<cstdio> ça a résolu le problème
    avec jpeglib

    en revanche le problème du bug de mon propre code
    reste entier

    je sait que c'est un peu hors sujet mais si vous
    pouviez m'aider a réparer le code de ma classe qui bug ^^'
    ce serait sympa


    voici les messages d'erreurs que je reçois :

    ...\jpeg decoder.cpp:39: error: new types may not be defined in a return type
    ...\jpeg decoder.cpp:39: error: `bool' is now a keyword
    ...\jpeg decoder.cpp:39: error: prototype for `JPEG_DECODER JPEG_DECODER::_init(void*, int)' does not match any in class `JPEG_DECODER'
    ...\jpeg decoder.cpp:27: error: candidate is: bool JPEG_DECODER::_init(void*, int)
    ...\jpeg decoder.cpp:39: error: `JPEG_DECODER JPEG_DECODER::_init(void*, int)' and `bool JPEG_DECODER::_init(void*, int)' cannot be overloaded
    ...\jpeg decoder.cpp: In member function `JPEG_DECODER JPEG_DECODER::_init(void*, int)':
    ...\jpeg decoder.cpp:67: error: conversion from `bool' to non-scalar type `JPEG_DECODER' requested
    ...\jpeg decoder.cpp:90: error: conversion from `bool' to non-scalar type `JPEG_DECODER' requested
    et voici le code de la classe :
    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
    class JPEG_DECODER
    {
       public:
          inline bool  init( void *input_buffer, int input_buffer_size );
          inline bool  read_scanline( void *output_buffer );
          inline void  done();
     
       jpeg_source_mgr  mgr;
       jpeg_decompress_struct image;
     
       bool error;
    }
     
     
    inline bool  JPEG_DECODER::init( void *input_buffer, int input_buffer_size )
    {
        jpeg_source_mgr  mgr;
        mgr.bytes_in_buffer   = input_buffer_size;
        mgr.next_input_byte   = (JOCTET*) input_buffer;
        mgr.init_source       = JPEG_init_source;
        mgr.fill_input_buffer = JPEG_fill_input_buffer;
        mgr.skip_input_data   = JPEG_skip_input_data;
        mgr.resync_to_restart = jpeg_resync_to_restart;  // use default
        mgr.term_source       = JPEG_term_source;
     
        image.err = NULL;
        jpeg_create_decompress(&image);
        image.src = &mgr;
        error = false;
     
        if (  jpeg_read_header( &image, TRUE )  !=  JPEG_HEADER_OK  ||
           (  image.output_components != 1  &&  image.output_components != 3  )  )
        {
           error = true;
           jpeg_destroy_decompress(&image);
           return false;
        }
     
        jpeg_start_decompress(&image);
        return true;
    }
     
     
     
    inline bool  JPEG_DECODER::read_scanline( void *output_buffer )
    {
       if ( image.output_scanline >= image.output_height )
       {
          done();
          return false;
       }
       if (  jpeg_read_scanlines( &image, (JSAMPARRAY) output_buffer, 1 )  ==  0  )   //  num_rows == 0
       {
          error = true;
          jpeg_destroy_decompress(&image);
          return false;
       }
       return true;
    }
     
     
     
    inline void  JPEG_DECODER::done()
    {
        jpeg_finish_decompress( &image );
        jpeg_destroy_decompress( &image );
    }
    merci.

  15. #15
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    pourtant compiler les fichier .c en une foi
    cela avait marché avec libmad
    Parce que tu avais de la chance. C'est l'exception, pas la règle.

    Pour ton code:
    Mais il manque un point-virgule après ta classe.

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    narf tout ces messages d'erreur pour une virgule ^^;

    merci bien maintenant tout fonctionne


    ok pour la balise c'est noté ^^


    a +

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

Discussions similaires

  1. [XSD] Pourquoi une URL en tant que XML NameSpace ?
    Par Bayard dans le forum Valider
    Réponses: 2
    Dernier message: 11/12/2006, 11h06
  2. Passage d'une fonction en tant que paramètre
    Par bagnolm dans le forum Langage
    Réponses: 3
    Dernier message: 28/11/2006, 15h58
  3. Une bibliographie en tant que chapitre non numéroté
    Par Kurisu dans le forum Bibliographies - Index - Glossaires
    Réponses: 1
    Dernier message: 18/10/2006, 20h52
  4. utilisation d"une variable en tant que motif de
    Par bilout dans le forum Langage
    Réponses: 4
    Dernier message: 26/03/2006, 20h19
  5. [FTP] Définir une variable en tant que constante
    Par Anduriel dans le forum Langage
    Réponses: 2
    Dernier message: 15/01/2006, 11h39

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