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 :

Probleme de conflit de declaration entre freeimage et windows


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Probleme de conflit de declaration entre freeimage et windows
    Bonjour a tous, je rencontre le problème suivant en compilant un fichier qui inclus simplement comme cela :

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    #include <windows.h>
    #include <iostream.h>
    #include <freeimage.h>
     
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
     
    /*  Make the class name into a global variable  */
    char szClassName[ ] = "WindowsApp";
     
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
     
    {
        HWND hwnd;               /* This is the handle for our window */
        MSG messages;            /* Here messages to the application are saved */
        WNDCLASSEX wincl;        /* Data structure for the windowclass */
     
        /* The Window structure */
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
        wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
        wincl.cbSize = sizeof (WNDCLASSEX);
     
        /* Use default icon and mouse-pointer */
        wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;                 /* No menu */
        wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
        wincl.cbWndExtra = 0;                      /* structure or the window instance */
        /* Use Windows's default color as the background of the window */
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
     
        /* Register the window class, and if it fails quit the program */
        if (!RegisterClassEx (&wincl))
            return 0;
     
        /* The class is registered, let's create the program*/
        hwnd = CreateWindowEx (
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Windows App",       /* Title Text */
               WS_OVERLAPPEDWINDOW, /* default window */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window ends up on the screen */
               544,                 /* The programs width */
               375,                 /* and height in pixels */
               HWND_DESKTOP,        /* The window is a child-window to desktop */
               NULL,                /* No menu */
               hThisInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );
     
        /* Make the window visible on the screen */
        ShowWindow (hwnd, nFunsterStil);
     
        /* Run the message loop. It will run until GetMessage() returns 0 */
        while (GetMessage (&messages, NULL, 0, 0))
        {
            /* Translate virtual-key messages into character messages */
            TranslateMessage(&messages);
            /* Send message to WindowProcedure */
            DispatchMessage(&messages);
        }
     
        /* The program return-value is 0 - The value that PostQuitMessage() gave */
        return messages.wParam;
    }
     
     
    /*  This function is called by the Windows function DispatchMessage()  */
     
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)                  /* handle the messages */
        {
            case WM_DESTROY:
                PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
                break;
            default:                      /* for messages that we don't deal with */
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
     
        return 0;
    }
    j'obtiens le message suivant alors que j'ai vu sur divers sites, des sources où les deux fichiers etaitent inclus sans modification :

    156 D:\Dev-Cpp\include\freeimage.h conflicting declaration 'typedef uint32_t DWORD'
    222 D:\Dev-Cpp\include\windef.h 'DWORD' has a previous declaration as `typedef long unsigned int DWORD'

    et le message se repete avec d'autre typedef.

    Comment puis-je alors utiliser freeimage et windows (en l'occurence "windef.h") ?

    Merci de vos réponses.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Bonjour, tu utilises quel compilateur?

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Citation Envoyé par Mongaulois
    Bonjour, tu utilises quel compilateur?
    Citation Envoyé par popnikos Voir le message
    156 D:\Dev-Cpp\include\freeimage.h conflicting declaration 'typedef uint32_t DWORD'
    222 D:\Dev-Cpp\include\windef.h 'DWORD' has a previous declaration as `typedef long unsigned int DWORD'
    Sans vouloir m'avancer, je dirais...

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Sans vouloir m'avancer, je dirais...

    je suis confus...
    d'un autre coté ce n'est pas pour cela que c'est gcc avec devCpp

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    le compilateur c'est gcc (g++) avec Dev-cpp effectivement.

    mais je ne connais pas les caracteristique de windows.h et freeimage.h....

    si vous avez une idée....je suis preneur.

    Merci

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    comment as tu installé freeimage??

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    jai juste la DLL où je compile le program , le fichier FreeImage.h (dans le repertoire des includes de dev-cpp) et le freeimage.lib

    nb : j'ai aussi le freeimage.h dans le rep de mon programme mais comme j'inclus en tapant :
    cela ne devrait pas poser probleme (d'avoir le fichier a 2 endroit diffferent.)

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    tu as récupéré la version win32 sur le site?
    tu ne l'as pas recompilé?

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    merci de ta reponse rapide....
    en fait, je n'ai pas programmé depuis longtemps et je decouvre dev-cpp....et je n'ai jamais reussi a compilé le projet freeimage complé donc j'ai télécharger les binaires sur un autre site (codes-sources.net je crois).....mais c'est bien la version win32 dont j'ai la DLL car je compile parfaitement d'autre programme avec freeimage et qui fonctionnent tres bien.

  10. #10
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    tu devrait reprendre depuis le début :
    1- télécharge freeimage Win 32
    http://freeimage.sourceforge.net/download.html
    2- regarde le README.minGW il explique comment créé un .a : lib au format GCC

    Aprés faudrait voir les erreur que tu as. Est tu sur d'utiliser l'api windows de GCC??

    Sinon connaît tu code::blocks?? c'est un bon remplaçant à dev-cpp a mon goût.

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    je tenterai plus tard la recompile car le temps n'est pas à l'urgence.

    je ne connait pas code::block, mais je me renseignerai.

    Merci de tes reponses. je laisse en non résolu le topic, si toutes fois quelqu'un a déjà eu le même problème dans les mêmes conditions

  12. #12
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par popnikos Voir le message
    je tenterai plus tard la recompile car le temps n'est pas à l'urgence.
    Tu as juste a prendre la version déja compilé
    c'est la dedans où il explique pour Gcc-mingw(version de gcc utilisé par dev-Cpp)

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    je n'arrive pas à creer le freeimage.a car il me dit que 'sed' n'est pas reconnu comme commande... ça me soul un p'tit peu cette histoire..

    je ne sais pas quoi faire....

  14. #14
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par popnikos Voir le message
    je n'arrive pas à creer le freeimage.a car il me dit que 'sed' n'est pas reconnu comme commande... ça me soul un p'tit peu cette histoire..

    je ne sais pas quoi faire....
    Le voici. Ca devrait marcher.
    http://dl.free.fr/mnbDaU9sf/FreeImage.rar

    Mais c'est vrai que c'est soulant avec mingw.
    Par contre Freeimage c'est du C. Il y as un bind C++. Mais bon, j en sait pas comment le compiler avec mingw

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Au risque de passez pour un vrai noob ...(mais bon en fait j'en suis un peu un...) je le met dans le repertoire "lib" de dev-cpp ou dans le repertoire local de mon programme ...enfin bon ...je verrai demain car la ...pas du tout de temps....

    Merci pour cette aide precieuse Mongaulois

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/10/2005, 13h56
  2. petit problem de transfer de variable entre page
    Par Damarus dans le forum Langage
    Réponses: 8
    Dernier message: 11/09/2005, 12h56
  3. probleme d'espace non voulu entre 2 bloc
    Par piff62 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/04/2005, 16h07
  4. Réponses: 12
    Dernier message: 04/10/2004, 19h18

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