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

MFC Discussion :

[Librairie .h] Pb entre windows.h et afxwin.h


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Par défaut [Librairie .h] Pb entre windows.h et afxwin.h
    Bonjour,

    J'ai besoin de ces 2 librairies (windows.h et afxwin.h) pour un projet. Mon projet est une application console win32.

    Si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include <windows.h>
    #include <afxwin.h>
    J'obtiens :
    c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>


    Si par contre, je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include <afxwin.h>
    #include <windows.h>
    J'obtiens
    nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in libcpd.lib(delop.obj)
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex


    J'utilise Visual C++ 6.0 SP6.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    si tu mets afxwin.h tu vires windows.h .

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Par défaut
    Citation Envoyé par farscape
    salut,
    si tu mets afxwin.h tu vires windows.h .
    J'avais oublié de préciser que dans ce cas, j'ai toujours la meme erreur :

    nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in libcpd.lib(delop.obj)
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    tu utilises un entete precompile ? (stdafx.h)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Par défaut
    Citation Envoyé par farscape
    tu utilises un entete precompile ? (stdafx.h)
    Oui tout a fait.
    Je l'ai retiré mais le résultat est toujours le meme

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    montre le contenu de l'entete .

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Par défaut
    Fichier stdafx.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
     
    // stdafx.h : include file for standard system include files,
    //  or project specific include files that are used frequently, but
    //      are changed infrequently
    //
     
    #if !defined(AFX_STDAFX_H__AF3A59A0_5AD9_4C7E_B111_6FA15B89C339__INCLUDED_)
    #define AFX_STDAFX_H__AF3A59A0_5AD9_4C7E_B111_6FA15B89C339__INCLUDED_
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
    #define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
     
    #include <stdio.h>
     
    // TODO: reference additional headers your program requires here
     
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
     
    #endif // !defined(AFX_STDAFX_H__AF3A59A0_5AD9_4C7E_B111_6FA15B89C339__INCLUDED_)
    Fichier main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //#include "stdafx.h"
    #include <iostream>//needs these three lines
    #include <stdlib.h>//needs these three lines
    using namespace std;//needs these three lines
     
    /*-----------------------inclusion des bibliotheques-----------------------*/
    #include <conio.h>
    #include <math.h>
    #include <direct.h>
    #include <time.h>
    #include <afxwin.h>
    #include "serie.h"
    #include "ni.h"

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    essaye pour stdafx.h
    et vire les afxwin.h de ton .cpp

    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
     
    #if !defined(AFX_STDAFX_H__BB838DEA_61AE_485F_A132_DD5717CA4701__INCLUDED_)
    #define AFX_STDAFX_H__BB838DEA_61AE_485F_A132_DD5717CA4701__INCLUDED_
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
    #define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers
     
    #include <afx.h>
    #include <afxwin.h>         // MFC core and standard components
    #include <afxext.h>         // MFC extensions
     
    #include <iostream>

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
    Debug/TEST.exe : fatal error LNK1120: 2 unresolved externals
    Ca continue a me donner des erreurs.
    Dans le doute, j'ai essayé de rajouter windows.h dans le cpp, mais les erreurs sont identiques

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Par défaut
    J'ai ajouter au projet le fichier THRDCORE.CPP. Maintenant ca compile et fonctionne correctement.

    Le fichier était disponible dans ...\Microsoft Visual Studio\VC98\MFC\SRC

    Mais est ce bien correct comme solution ou c'est vraiment un beau bricolage ?

  11. #11
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    c'est vraiment un beau bricolage
    Mais t'inquiète, c'est la MFC

    Tu as spécifié que le projet contenait un stadfx dans le mode de compilation ? (au lieu d'inclure THRDCORE.CPP)

    Si c'est le cas, change le mode de compilation en "multi-thread"

    Bon cela sera peut être moins "bricolage"

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Par défaut
    Pour le stadfx, je l'ai effectivement spécifié au moment de la creation du projet.
    Je viens de tester le multi-thread et c'est parfait.

    Un grand merci à farscape et à Ti-R.

    -> Résolu

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/03/2006, 00h09
  2. Réponses: 5
    Dernier message: 22/12/2005, 17h31
  3. librairies C unix et windows
    Par PhilYves dans le forum C
    Réponses: 3
    Dernier message: 29/11/2005, 15h31
  4. Affichage différent entre Windows XP et 2000
    Par Ben_Le_Cool dans le forum Langage
    Réponses: 9
    Dernier message: 29/07/2005, 20h52
  5. Réponses: 2
    Dernier message: 21/10/2004, 15h08

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