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 :

[WIN32][MFC] Compilation ..WINDOWS.H


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Ao�t 2006
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 21
    Par d�faut [WIN32][MFC] Compilation ..WINDOWS.H
    Bonjour,

    Pour vous d�crire la structure du projet, j'ai une application non MFC qui utilise une dll MFC.

    Cette dll utilise les API windows...winmm.lib
    La dll est exporte une classe qui permet au programme non MFC de d�marrer l'enregistrement audio.

    Donc je d�clare avec .h dans le programme Win32 une classe h�ritant de la dll d'export.

    Compilation:

    La compilation de la dll se fait nickel !

    La compilation de l'appli non, il me dit "WINDOWS.H already included. MFC apps must not #include <windows.h> "

    Je n'ai aucun windows.h dans la dll MFC, que "afxwin.h" <mmsystem.h>

    Ce que je ne comprend pas c que si je retire la d�claration de la dll dans l'appli , ca compile....

    Je comprend pas comment en ajoutant une dll le prog win32 va voir des windows.h...
    J'ai mis dans tous les .h des #ifndef NOM_ #define NOM_ .....#endif //NOM_

    Auriez vous une id�e?

  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,
    et pourtant le probleme est bien que tu dois avoir l'include windows.h quelque part.
    montre ton stdafx.h
    et le .h de ta dll (du moins le debut).


  3. #3
    Membre averti
    Inscrit en
    Ao�t 2006
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 21
    Par d�faut
    Oui, il y a un windows.h dans une des .h de l'appli win32.
    Le probl�me est que si je le retire ca ne compile plus.


    Un bout de code du .h de la classe qui exporte...
    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
     
    // Pipe.h: interface for the CPipe class.
    //
    //////////////////////////////////////////////////////////////////////
    #ifndef AFX_PIPE
    #define AFX_PIPE
     
    #include "soundin.h"
    #include "soundout.h"
    #include "soundfile.h"
    #include "ptrFIFO.h"
     
     
    #ifndef __PIPE_H_
    #ifdef PIPE_EXPORTS
    #define __PIPE_H_ __declspec(dllexport)
    #else
    #define __PIPE_H_ __declspec(dllimport)
    #endif
    #endif
     
    class __PIPE_H_ CPipe
    {
    public:
    	CPipe();
    	virtual ~CPipe();


    Un bout de code du stdafx.h de la dll

    pour l'appli visual ne m'en a pas cr�er, ( j'ai peu etre oubli�)

    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
     
    // 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__00B1537B_DE52_47A1_8ADB_847D40309F55__INCLUDED_)
    #define AFX_STDAFX_H__00B1537B_DE52_47A1_8ADB_847D40309F55__INCLUDED_
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
    #define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers
     
    #include <afxwin.h>         // MFC core and standard components
    #include <afxext.h>         // MFC extensions
    #include <afxdisp.h>        // MFC Automation classes
    #include <afxdtctl.h>		// MFC support for Internet Explorer 4 Common Controls
    #ifndef _AFX_NO_AFXCMN_SUPPORT
    #include <afxcmn.h>			// MFC support for Windows Common Controls
    #endif // _AFX_NO_AFXCMN_SUPPORT
     
    #pragma comment( lib, "winmm.lib" )
     
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
     
    #endif // !defined(AFX_STDAFX_H__00B1537B_DE52_47A1_8ADB_847D40309F55__INCLUDED_)
    Est que je peux rajouter a la main un fichier stdafx.h



    J'ai lu quelque part qu'il fallait trouver le afx..h remplacant windows.h

    alors il me sert a d�clarer les appels du style LPCTSTR lpsAddr; const DWORD&
    Les sockets... et Cwinthread

    merci de ton aide

  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
    et bien tu peux entourer la declaration de windows.h par un
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    #ifdef _WINDLL
    #include <windows.h>
    #endif

  5. #5
    Membre averti
    Inscrit en
    Ao�t 2006
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 21
    Par d�faut
    Ce bout suppl�mentaire, d�clare windows.h si c'est une dll windows?

    Ce bout de code doit etre mis dans l'appli win32? en lieu et place de windows.h?

    si oui voici le resultat:
    Avec ca j'ai un autre soucis, dans un fichier de l'appli, ".h" Les commandes comme LPCSTR...

    Saurais tu le fichier correspondant au d�claration DWORD, BOOL...faut il mettre celui je dirais "win32" ou MFC?

  6. #6
    Membre averti
    Inscrit en
    Ao�t 2006
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 21
    Par d�faut
    ya t'il un .h pour l'utilisation de ceci, je ne trouve rien dans la msdn

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    operatorbaba() const {return...
    operator?? je ne connais pas...l'appli win32 c du code repris...

  7. #7
    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
    G�n�ralement, ce sont les op�rateurs de conversion.
    CString::operator LPCTSTR sert � obtenir directement un const TCHAR * ) partir de la CString:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    CString chn = "Coucou";
    LPCTSTR autreChn = chn;
    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.

  8. #8
    Membre averti
    Inscrit en
    Ao�t 2006
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 21
    Par d�faut
    Est il possible de remplacer #include <winsock2.h>, car celui-ci introduit windows.h
    J'ai essay� de mettre afxsock.h mais le compilateur ne reconnait pas ensuite WSADATA ; WSACreateEvent() ...

  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
    Par d�faut
    ou apparait l'erreur ?
    dans la dll ? le projet qui utilise la DLL ?

  10. #10
    Membre averti
    Inscrit en
    Ao�t 2006
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 21
    Par d�faut
    J'ai reussi a combattre presque tout le code...

    En faite le probleme survient a la compilation d'une librairie suppl�mentaire static qui permet a l'application d'utiliser les sockets, etc...

    L'appli se sert de fonction socket cr�er dans la librairie static.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me Win32 en compilant sous VS 2005
    Par boudreau_benjamin dans le forum Windows
    R�ponses: 2
    Dernier message: 14/04/2007, 12h22
  2. [Free Pascal] Cross-compiling Windows -> Linux : comment faire ?
    Par zafo dans le forum Free Pascal
    R�ponses: 5
    Dernier message: 01/03/2007, 12h43
  3. Difference entre MFC et Windows Application
    Par abbd dans le forum Visual C++
    R�ponses: 2
    Dernier message: 27/02/2007, 13h18
  4. Incompatibilit� d'un PGM sous Win32 / MFC
    Par beb30 dans le forum MFC
    R�ponses: 2
    Dernier message: 09/03/2006, 10h47
  5. R�ponses: 15
    Dernier message: 22/03/2005, 14h45

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