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++Builder Discussion :

Erreurs dans CImg.h


Sujet :

C++Builder

  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut Erreurs dans CImg.h
    Bonjours
    Suite a ses deux post
    DjmSoftware avait sugere de remplacer ces fichiers par leur equivalents BCB
    #include <cstdio>
    #include <cstdlib>
    #include <cstdarg>
    #include <cstring>
    #include <cmath>
    #include <ctime>
    #include <exception>
    Cependant des erreurs etaient toujours presentes
    Apres recherche j'ai preconise d'utiliser la version " CImg 1.2.0.1 " qui fonctionne sans Bugs, il est domage de ne pas pouvoir profiter de la version la plus recente
    j'ai donc regarde pourquoi il y a une erreur dans le chichier CImg.h, la version " CImg 1.2.0.1 " fonctionne avec les fichiers cites plus haut et ils se trouvent ici
    C:\Program Files (x86)\Borland\CBuilder6\Include\Stlport
    Je pense pas qu'il soit necessaire de les remplacer
    parmis les erreurs il y en a deux qui on retenues mon attention
    E2268 Call to undefined function '_snprintf'
    et
    E2268 Call to undefined function '_vsnprintf'
    et dans l'entete il y a ceci
    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
     
    // Include OS-specific headers for system management.
    #if cimg_OS==1
    #include <sys/types.h>
    #include <sys/time.h>
    #include <unistd.h>
    #elif cimg_OS==2
    #ifndef NOMINMAX
    #define NOMINMAX
    #endif
    #include <windows.h>
    #ifndef _WIN32_IE
    #define _WIN32_IE 0x0400
    #endif
    #include <shlobj.h>
    #include <io.h>
    #define cimg_snprintf _snprintf   <----  E2268 Call to undefined function '_snprintf'
    #define cimg_vsnprintf _vsnprintf <----  E2268 Call to undefined function '_vsnprintf'
    #endif
    #ifndef cimg_snprintf
    #include <stdio.h>
    #define cimg_snprintf snprintf
    #define cimg_vsnprintf vsnprintf
    #endif
    Je pense que l'erreur ce trouve dans les directives de compilation, je ne suis cependant pas capable de voir ou
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut Blondelle

    1.
    _snprintf et _vsnprintf sont définis dans la librarire stdio.h qui est un fichier d'entête de la library C

    snprintf et vsnprintf sont également défini dans stdio.h mais également dans <cstdio> qui est un fichier d'entête de la library C++

    il doit être possible de redéfinir ces fonctions dans le .h de cette librairie graphique comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    #define _snprintf   snprintf  
    #define _vsnprintf vsnprintf
    2. la librarie stlport n'est plus distribuée par Codegear/Embarcadero à partir de c++ Builder 6 . elle a été remplacée par Dinkuware qui est également utilisées par MS

    l'aide en ligne fournie par Embarcadero ou MSDN te confirmera mes propos
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Merci pour tes reponses DjmSoftware

    Il serait interressant de savoir si cela fonctionne sous XE

    J'utilise BCB6 je possede donc les deux versions des fichiers, je pense que je me suis mal exprime, dans l'entete il y a des directives de compilation et " _snprintf et _vsnprintf " ainsi que " snprintf et vsnprintf " s'y trouvent, je pense que c'est la qu'il y a une erreur, l'extrait est dans mon post precedent, malheureusement je ne vois pas ou
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  4. #4
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut Blondelle
    La version 6.0 est par ailleurs un Mixe Car tu peux utiliser la STL, La RWL (RogueWave Library), ainsi que STLPort

    Si on ne prend pas garde à bien séparer dans son application les chemins d'include alors bonjour les dégâts

    Ceci a été corrigé à partir de la version 2006

    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Hello,

    Pour le fun (), j'ai essayé de compiler CImg 1.4.9 avec Builder 2010.
    Et ben, y'a du sport !
    Je suis parti d'un des exemples fournis avec la librairie: CImg_demo.cpp (en faisant un nouveau projet console, C++ sans VCL, source du projet: CImg_demo.cpp)

    Ça marche ! Mais il a fallu aller piocher de l'aide...

    Au final... il faut modifier CImg_demo.cpp et CImg.h...

    Modifs de CImg_demo.cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ...
    // Include CImg library header.
    #include "math.h"
    #include "stdio.h"
    #define _setmode setmode
    #include "CImg.h"
    using namespace cimg_library;
    ...
    Un bon nombre des appels à .draw_text sont à modifier.
    Si le compilo balance une erreur du style
    [BCC32 Erreur] CImg_demo.cpp(242): E2285 Impossible de trouver une correspondance pour 'CImg<unsigned char>::draw_text<tc1,tc2,t>(int,int,const char *,unsigned char *,int,float,int,unsigned int)'
    modifier l'appel comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        // Display current animation framerate, and refresh display window.
        img.draw_text<unsigned char, unsigned char>(5,5,"%u frames/s",white,0,0.5f,13,(unsigned int)disp.frames_per_second());
    Passons à Cimg.h:
    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
    ...
        //! Get the minimum value between two numbers.
        template<typename t1, typename t2>
        inline typename cimg::superset<t1,t2>::type min(const t1& a, const t2& b) {
          typedef typename cimg::superset<t1,t2>::type t1t2;
          return (t1t2)(a<=b?(t1t2)a:(t1t2)b);
        }
    ...
        //! Get the maximum value between two numbers.
        template<typename t1, typename t2>
        inline typename cimg::superset<t1,t2>::type max(const t1& a, const t2& b) {
          typedef typename cimg::superset<t1,t2>::type t1t2;
          return (t1t2)(a>=b?(t1t2)a:(t1t2)b);
        }
    ...
        template<typename tc>
        CImg<T>& draw_text(const int x0, const int y0,
                           const char *const text,
                           const tc *const foreground_color, const int background_color=0,
                           const float opacity=1, const unsigned int font_height=13, ...) {
          if (!font_height) return *this;
          char tmp[2048] = { 0 }; std::va_list ap; va_start(ap,font_height); cimg_vsnprintf(tmp,sizeof(tmp),text,ap); va_end(ap);
          return draw_text<T, T>(x0,y0,"%s",foreground_color,(const tc*)background_color,opacity,font_height,tmp);
        }
    ...
    puis d'autres .draw_text, à modifier en fonction du CImg<Trucmuche> correspondant...
    Ces modifications permettent de compiler (et d'exécuter) CImg_demo.cpp, mais il n'est pas garanti qu'elles soient suffisantes pour d'autres projet.

    Sous XE2, les sources modifiées pour 2010 compilent et fonctionnent (pas essayé en repartant des sources originaux).

    J'ai essayé vite fait sous BCB6 et 2007, mais ils gueulaient chacun avec des erreurs de compil différentes ...

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Merci DjmSoftware et totoche76 pour vos reponses
    Effectivement il y a du boulot, je n'ai regarde que " CImg.h ", par contre si quelqu'un peut m'expliquer les directives d'assemblage de l'entete, je ne comprend pas tout
    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
    // Include OS-specific headers for system management.
    #if cimg_OS==1
    #include <sys/types.h>
    #include <sys/time.h>
    #include <unistd.h>
    #elif cimg_OS==2
    #ifndef NOMINMAX
    #define NOMINMAX
    #endif
    #include <windows.h>
    #ifndef _WIN32_IE
    #define _WIN32_IE 0x0400
    #endif
    #include <shlobj.h>
    #include <io.h>
    #define cimg_snprintf _snprintf   <----  E2268 Call to undefined function '_snprintf'
    #define cimg_vsnprintf _vsnprintf <----  E2268 Call to undefined function '_vsnprintf'
    #endif
    #ifndef cimg_snprintf
    #include <stdio.h>
    #define cimg_snprintf snprintf
    #define cimg_vsnprintf vsnprintf
    #endif
    il sort les deux erreurs
    E2268 Call to undefined function '_snprintf'
    E2268 Call to undefined function '_vsnprintf'
    ses deux fonctions sont definies dans les directives d'assemblage, j'ai donc un doute de ce cote, alors si on peut m'expliquer, je comprend pas tout
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    En fait avec Builder les 2 fonctions sont pas directement définies...

    Ça semble être lié aux différences entre les .h de VC++ et ceux de Builder...

    CImg.h commence par inclure cstdio, qui inclue stdio.h.
    Mais au passage, dans Builder, du fait des #define qui sont faits (__USING_CNAME__ en particulier), les fonctions _vsnprintf et _snprintf ne sont pas "sorties" du namespace std (using std::_vsnprintf; et using std::_snprintf; à la fin de stdio.h).
    Si tu inclues stdio.h toi-même avant cstdio, là par contre les using std::.. sont bien pris en compte.

    Les includes de VC++ sont foutus différemment, CImg a été fait en prévision de VC++, donc ça se passe mieux chez eux...

    Plutôt que d'inclure stdio.h en début, tu peux modifier CImg.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define cimg_snprintf std::_snprintf
    #define cimg_vsnprintf std::_vsnprintf
    Mais il y a toujours le problème de _setmode, qu'il faut définir soi-même.

  8. #8
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Je suis d'accord avec toi, mais si tu regarde le bout de code poste et qui contient des directives de compilation il y a un teste qui est fait pour inserrer " #include <io.h> " et " #include <shlobj.h> " je soupconne un probleme de ce cote, meme si cela ne resoud pas tout, cela devrait enlever pas mal d'erreurs
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  9. #9
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Pour info, sous BCB6, on passe les erreurs sur _vsnprintf et _setmode avec les même modifs que pour Builder 2010 (cf. plus haut).

    Mais ensuite, le compilo gueule comme un malade sur des erreurs E2015 liées à des ambiguïtés entre des const et des non-const...

    Je suis d'accord avec toi, mais si tu regarde le bout de code poste et qui contient des directives de compilation il y a un teste qui est fait pour inserrer " #include <io.h> " et " #include <shlobj.h> " je soupconne un probleme de ce cote, meme si cela ne resoud pas tout, cela devrait enlever pas mal d'erreurs
    Qu'est-ce que tu voies comme problème ?
    Pour ce que j'en ai compris, il rajoute <io.h> pour récupérer _setmode (qui s'appele setmode dans le io.h de Builder), et <shlobj.h> pour SHGetSpecialFolderPathA.

  10. #10
    Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Novembre 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Novembre 2011
    Messages : 88
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    Je n'ai pas bien compris vos discussions sur les erreurs de CImg.h

    Mais la seule chose que je veux connaitre ... est ce qu'il y une solution pour ces erreurs ??

    Bien sûr c'est pour profiter la version récente de CImg


  11. #11
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Bonjour,

    Je n'ai pas bien compris vos discussions sur les erreurs de CImg.h

    Mais la seule chose que je veux connaitre ... est ce qu'il y une solution pour ces erreurs ??

    Bien sûr c'est pour profiter la version récente de CImg
    Est-ce que tu dois obligatoirement utiliser Builder 6 et Cimg ?
    Est-ce que tu peux utiliser un autre outil de développement ou une autre librairie ?

    Pour ce que j'en ai vu, Builder 6 + CImg = "Pas gagné".

    Bon, ça fait un bout de temps que je n'utilise plus Builder 6, donc en dehors de faire un test rapide sur un problème très précis, je ne pourrai pas beaucoup t'aider...
    Les versions plus récentes de Builder ont pas mal évolué niveau compilateur, ce qui fait que des trucs qui ne compilaient pas sous Builder 6 compilent maintenant sans problème (inversement, des choses qui compilaient sous Builder 6 ne compilent plus parce que le compilateur est devenu plus rigoureux...).
    Ce qui explique que Cimg compile avec quelques modifs sous Builder 2010, et pas pour l'instant (du moins chez moi) sous Builder 6.

    A vue de nez, il te sera plus facile d'utilise CImg avec une version plus récente de Builder (2010 et +), ou avec Visual Studio...

  12. #12
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Papillon de mer
    N'ai pas de faux espoir ce sont des essais qui ne marcheront peut etre pas
    totoche76
    Voici ce que j'ai ecrit pour que " CImg.h " compile, il reste cependant 6 Warning a traiter, dans l'entete de l'unit1.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #define NO_WIN32_LEAN_AND_MEAN // <---- sinon erreur shlobjidl.h
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    #include "CImg.h"
    using namespace cimg_library;
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    dans l'entete de " CImg.h " voici comment j'ai fais
    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
     
    #if __BORLANDC__ >= 0x0560 // >= BCB6
            #include <stdio>
            #include <stdlib>
            #include <stdarg>
            #include <string>
            #include <math>
            #include <time>
            #include <exception>
            #define _setmode setmode
    #elif
            #include <cstdio>
            #include <cstdlib>
            #include <cstdarg>
            #include <cstring>
            #include <cmath>
            #include <ctime>
            #include <exception>
    #endif
    le premier warning " [C++ Warning] CImg.h(3956): W8066 Unreachable code " 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
     
    #if cimg_OS==2
          PROCESS_INFORMATION pi;
          STARTUPINFO si;
          std::memset(&pi,0,sizeof(PROCESS_INFORMATION));
          std::memset(&si,0,sizeof(STARTUPINFO));
          GetStartupInfo(&si);
          si.cb = sizeof(si);
          si.wShowWindow = SW_HIDE;
          si.dwFlags |= SW_HIDE;
          const BOOL res = CreateProcess((LPCTSTR)module_name,(LPTSTR)command,0,0,FALSE,0,0,0,&si,&pi);
          if (res) {
            WaitForSingleObject(pi.hProcess, INFINITE);
            CloseHandle(pi.hThread);
            CloseHandle(pi.hProcess);
            return 0;
          } else
    #endif <---- warning
            return std::system(command);
          return module_name?0:1;
        }
    le second warning " [C++ Warning] CImg.h(4446): W8060 Possibly incorrect assignment " ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        inline int strncasecmp(const char *const s1, const char *const s2, const int l) {
          if (!l) return 0;
          if (!s1) return s2?-1:0; <---- warning
          const char *ns1 = s1, *ns2 = s2;
          int k, diff = 0; for (k = 0; k<l && !(diff = uncase(*ns1)-uncase(*ns2)); ++k) { ++ns1; ++ns2; }
          return k!=l?diff:0;
        }
    le troisieme warning " [C++ Warning] CImg.h(4516): W8060 Possibly incorrect assignment " ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        inline const char* basename(const char *const s)  { <---- warning
          const char *p = 0;
          for (const char *np = s; np>=s && (p=np); np = std::strchr(np,cimg_file_separator)+1) {}
          return p;
        }
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  13. #13
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Salut Blondelle

    C'est intéressant et prometteur tout ça !
    Qu'est ce que tu as ensuite dans ton unit1.cpp (instanciation du Cimg) ??

  14. #14
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Dans Unit1.cpp il y a juste ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // la ligne ci dessous a ete trouvee sur le Net
    #define NO_WIN32_LEAN_AND_MEAN // <---- sinon erreur shlobjidl.h
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    #include "CImg.h"                           // <---- CImg.h
    using namespace cimg_library;          // <---- CImg
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    pas de commande CImg, sinon il y a d'autres erreurs, je pense qu'il faut deja resoudre les Warnings avant de passer au reste, je pense que cela n'est pas gagne
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

Discussions similaires

  1. [Tomcat] configuration d'une page d'erreur dans web.xml
    Par Super Castor dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 08/04/2009, 15h58
  2. [Thread] Erreur dans une classe interne
    Par totof2308 dans le forum Général Java
    Réponses: 5
    Dernier message: 03/06/2004, 08h15
  3. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59
  4. [Erreur dans la lib...]
    Par Gonath dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/12/2003, 09h02
  5. Erreur dans l'utilisation de SWAP
    Par mire dans le forum Langage
    Réponses: 12
    Dernier message: 15/03/2003, 21h39

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