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 :

Probl�me compilation C/C++


Sujet :

MFC

  1. #1
    Membre confirm�
    Inscrit en
    Janvier 2006
    Messages
    74
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par d�faut Probl�me compilation C/C++
    Bonjour

    Je suis en train de travailler sur un projet contenant des fichier C et C++.
    J'ai besoin d'un fichier C++ que j'ajoute au projet. Je mets le classique
    #include "stdafx.h" pour qu'il trouve les pr�compiled header.

    Le probl�me, c'est que de base, j'ai le message:

    usb.cpp(3) : fatal error C1853: 'Debug/testprod.pch' is not a precompiled header file created with this compiler
    Error executing cl.exe

    J'ai essay� de changer les settings des pr�compiled header en automatic pour ce fichier. Du coup, j'ai une erreur de compilation sur un HANDLE, le compilateur ne le comprend plus!!

    Quelle est la solution?

    Merci d'avance.

  2. #2
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Donne le passage concern�.

  3. #3
    Membre confirm�
    Inscrit en
    Janvier 2006
    Messages
    74
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par d�faut
    fichier usb.cpp:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    #include "stdafx.h"
    #include "usb.h"
     
    bool CUSB::OpenDevices(HANDLE* hHidControl, HANDLE* hHidAudio)
    {
     
    }
    L'erreur est sur le 1er include.
    Par contre, si je place usb.cpp en automatique precompiled header, l'erreur est la suivante dans le fichier usb.h:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #ifndef __USB_H
    #define __USB_H
     
    class CUSB
    {
    public:
    	CUSB();
    	~CUSB(void);
    	bool OpenDevices(HANDLE* hHidControl, HANDLE* hHidAudio);
    }
     
    #endif
    usb.h(12) : error C2061: syntax error : identifier 'HANDLE'
    ...

    il ne comprend plus le HANDLE du param�tre de la fonction OpenDevices

  4. #4
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut

    et que contient stdafx.h ?

  5. #5
    Membre confirm�
    Inscrit en
    Janvier 2006
    Messages
    74
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par d�faut
    voici le fameux stadfx.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
     
    // 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__77F560C4_4DCA_11D5_8EAD_005004F652DC__INCLUDED_)
    #define AFX_STDAFX_H__77F560C4_4DCA_11D5_8EAD_005004F652DC__INCLUDED_
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
     
    // 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__77F560C4_4DCA_11D5_8EAD_005004F652DC__INCLUDED_)

  6. #6
    Membre confirm�
    Inscrit en
    Janvier 2006
    Messages
    74
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par d�faut
    J'ai modifi� pas mal de chose dans tout les sens pour tenter de faire compiler ce projet.

    Tous mes fichier c++ sont en: use precompiled header file: stdafx.h
    Tous mes fichier c sont en: Not using precompiled headers

    L'erreur est la suivante:
    usb.cpp(3) : fatal error C1083: Cannot open precompiled header file: 'Debug/testprod.pch': No such file or directory

    Et ce, pour tous les ficier c++. L'erreur est sur la ligne du #include "stadfx.h"


    Si je fait:
    Tous mes fichier c++ sont en: use automatic precompiled header file
    Tous mes fichier c sont en: Not using precompiled headers

    usb.h(12) : error C2061: syntax error : identifier 'HANDLE'


    Si je fais:
    Tous mes fichier c++ sont en: use precompiled header file: stdafx.h
    Tous mes fichier c sont en: use automatic use of header

    Cette fois, l'erreur est:
    stdafx.cpp(5) : fatal error C1853: 'Debug/testprod.pch' is not a precompiled header file created with this compiler

    encore une fois pour tous les fichier c++, � la ligne #include "stdafx.h"

  7. #7
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Le truc c'est que ton stdafx.h est vide:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    // TODO: reference additional headers your program requires here
    faut inclure <windows.h>...

  8. #8
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Le precompiled header ne marche que pour un seul type de fichier: c ou c++.
    Cela d�pend du type de fichier qui le g�n�re: G�n�ralement, stdafx.c ou stdafx.cpp.

    Bref, pour les fichier de l'autre type, tu dois te mettre en not using precompiled headers...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    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

  10. #10
    Membre confirm�
    Inscrit en
    Janvier 2006
    Messages
    74
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par d�faut
    Alors justement, j'avai regard� cette faq, m�me si mon probl�me serait plus d'int�grer des fichier c++ � un projet c.

    Donc, j'ai plac� les fichier c++ en use pr�compiled header, les fichiers c en do not use.

    Du coup, pour mon code suivant:

    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
     
    #ifndef __USB_H
    #define __USB_H
     
    #define MAX_USB_DEVICES	64
    #define ULONG_PTR ULONG
    #define DWORD_PTR DWORD
     
    extern "C" {         //ligne 15
    #include "D:\WINDDK\2600.1106\inc\wxp\hidsdi.h"
    }
    #include "D:\WINDDK\2600.1106\inc\crt\setupapi.h"
     
     
    class CUSB
    {
    public:
    	CUSB(/*HANDLE hHidControl,HANDLE hHidAudio*/);
    	~CUSB(void);
     
    protected:
     
    };
    J'obtient les erreurs suivantes:

    d:\groupe\testp\usb.h(15) : error C2059: syntax error : 'string'
    d:\groupe\testp\usb.h(26) : error C2061: syntax error : identifier 'CUSB'

    Etdu coup, j'avoue que je ne comprend plus vraiment.
    Je suis sur que je ne suis pas loin de la solution, mais il me manque un petit morceau sur lequel je suis sur que vous pourrez m'aider.

    Merci encore pour votre aide!!!

  11. #11
    Membre confirm�
    Inscrit en
    Janvier 2006
    Messages
    74
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par d�faut
    Alors justement, j'avai regard� cette faq, m�me si mon probl�me serait plus d'int�grer des fichier c++ � un projet c.

    Donc, j'ai plac� les fichier c++ en use pr�compiled header, les fichiers c en do not use.

    Du coup, pour mon code suivant:

    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
     
    #ifndef __USB_H
    #define __USB_H
     
    #define MAX_USB_DEVICES	64
    #define ULONG_PTR ULONG
    #define DWORD_PTR DWORD
     
    extern "C" {         //ligne 15
    #include "D:\WINDDK\2600.1106\inc\wxp\hidsdi.h"
    }
    #include "D:\WINDDK\2600.1106\inc\crt\setupapi.h"
     
     
    class CUSB
    {
    public:
    	CUSB(/*HANDLE hHidControl,HANDLE hHidAudio*/);
    	~CUSB(void);
     
    protected:
     
    };
    J'obtient les erreurs suivantes:

    d:\groupe\testp\usb.h(15) : error C2059: syntax error : 'string'
    d:\groupe\testp\usb.h(26) : error C2061: syntax error : identifier 'CUSB'

    Etdu coup, j'avoue que je ne comprend plus vraiment.
    Je suis sur que je ne suis pas loin de la solution, mais il me manque un petit morceau sur lequel je suis sur que vous pourrez m'aider.

    Merci encore pour votre aide!!!

  12. #12
    Membre confirm�
    Inscrit en
    Janvier 2006
    Messages
    74
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par d�faut
    J'ai plac� le code suivant dans mon fichier.h :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    #ifdef __cplusplus 
    extern "C"
    {
    #endif
    	#include "D:\WINDDK\2600.1106\inc\wxp\hidsdi.h"
    #ifdef __cplusplus 
    }
    #endif
     
    #include "D:\WINDDK\2600.1106\inc\crt\setupapi.h"
    Cela r�gle le probl�me d'erreur de string.
    Par contre, la d�finition de la classe ne passe toujours pas.

    Pourtant, je suis bien en pr�compiled header pour les fichier c++ et pas de pr�compiled header pour les fichier c.

    Du coup, la je suis un peu a cours d'id�es.

Discussions similaires

  1. [VB5] Probl�me compilation, ocx manquants
    Par rastali dans le forum VB 6 et ant�rieur
    R�ponses: 2
    Dernier message: 10/10/2005, 14h39
  2. [Kylix] Probl�me de compilation
    Par rabbi_jaccob dans le forum EDI
    R�ponses: 3
    Dernier message: 25/07/2005, 23h36
  3. Probl�me compilation (toolkit Maximum Entropy)
    Par yannick_frere dans le forum MFC
    R�ponses: 4
    Dernier message: 07/03/2005, 09h47
  4. Probl�me compilation Version 8.0.1 sous Debian Sarge
    Par LIndien dans le forum PostgreSQL
    R�ponses: 1
    Dernier message: 04/02/2005, 21h38
  5. [Kylix] probl�me compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    R�ponses: 1
    Dernier message: 02/07/2003, 16h21

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