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 :

Erreur dans unknwn.h


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Par défaut Erreur dans unknwn.h
    Yop tout le monde,

    J'ai un problème de compilation dès que j'ajoute <windows.h> a mes #define :
    j'ai beaucoup d'erreurs à unknwn.h et à objidl.h
    Je suis sous windows, avec gcc
    J'ai retéléchargé l'api win32 pour mingw mais cela n'a rien changé. Google ne me dis rien de plus, et je ne sais pas du tout où chercher...

    Des idées?

    merci

  2. #2
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 303
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par izguit
    J'ai un problème de compilation dès que j'ajoute <windows.h> a mes #define :
    ???

    Ne me dis pas que tu as écris #define <windows.h>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Par défaut
    wooops...
    c'est que pour du vc++ c'est ça???
    le c++ c'est encore neuf pour moi hein

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    c'est que pour du vc++ c'est ça???
    Non, c'est juste que ça n'a aucun sens d'écrire ça
    Lorsque tu veux inclure un en-tête, c'est la directive #include qu'il faut utiliser.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Par défaut
    ah euh oui merde lol nan nan j'avais bien mis include
    j'ai pas tilté en écrivant le post :d

  6. #6
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 303
    Billets dans le blog
    2
    Par défaut
    ouf

    si tu pouvais nous copier ton code, on pourrait y voir plus clair. Parce que là c'est pas évident.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Par défaut
    bin je veux bien poster mon code mais c'est juste quand j'ajoute #include <windows.h> que ca met ces erreurs... C'est pas moi qui les inclut les 2 headers qui foutent le dawa
    Vous voulez le code de objidl.h et unknwn.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
    Peux-tu nous montrer un aperçu des erreurs que tu as, et quelques lignes sur lesquelles ça foire ?

    Tu utilises bien le SDK de MinGW, au moins, hein ?
    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
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Par défaut
    Les erreurs :
    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
     
    In file included from C:/Program Files/CodeBlocks/include/objbase.h:72,
                     from C:/Program Files/CodeBlocks/include/ole2.h:9,
                     from C:/Program Files/CodeBlocks/include/windows.h:111,
                     from engine.cpp:4:
    C:/Program Files/CodeBlocks/include/unknwn.h:31: error: expected init-declarator before '*' token
    C:/Program Files/CodeBlocks/include/unknwn.h:31: error: expected `,' or `;' before '*' token
    C:/Program Files/CodeBlocks/include/unknwn.h:38: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/unknwn.h:42: error: `LPUNKNOWN' has not been declared
    C:/Program Files/CodeBlocks/include/unknwn.h:47: error: `IUnknown' was not declared in this scope
    C:/Program Files/CodeBlocks/include/unknwn.h:47: error: expected primary-expression before ',' token
    C:/Program Files/CodeBlocks/include/unknwn.h:47: error: expected primary-expression before "const"
    C:/Program Files/CodeBlocks/include/unknwn.h:47: error: expected primary-expression before "void"
    C:/Program Files/CodeBlocks/include/unknwn.h:47: error: initializer expression list treated as compound expression
    C:/Program Files/CodeBlocks/include/unknwn.h:49: error: `IUnknown' was not declared in this scope
    C:/Program Files/CodeBlocks/include/unknwn.h:49: error: expected primary-expression before ')' token
    C:/Program Files/CodeBlocks/include/unknwn.h:51: error: `IUnknown' was not declared in this scope
    C:/Program Files/CodeBlocks/include/unknwn.h:51: error: expected primary-expression before ')' token
    C:/Program Files/CodeBlocks/include/unknwn.h:53: error: `IUnknown' has not been declared
    C:/Program Files/CodeBlocks/include/unknwn.h:57: error: `IUnknown' has not been declared
    C:/Program Files/CodeBlocks/include/unknwn.h:58: error: `IUnknown' has not been declared
    In file included from C:/Program Files/CodeBlocks/include/objbase.h:73,
                     from C:/Program Files/CodeBlocks/include/ole2.h:9,
                     from C:/Program Files/CodeBlocks/include/windows.h:111,
                     from engine.cpp:4:
    C:/Program Files/CodeBlocks/include/objidl.h:34: error: `LPUNKNOWN' does not name a type
    C:/Program Files/CodeBlocks/include/objidl.h:108: error: expected `;' before '*' token
    C:/Program Files/CodeBlocks/include/objidl.h:166: error: `LPUNKNOWN' does not name a type
    C:/Program Files/CodeBlocks/include/objidl.h:417: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:418: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:419: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:420: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:421: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:422: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:423: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:424: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:425: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:425: error: `IUnknown' has not been declared
    C:/Program Files/CodeBlocks/include/objidl.h:431: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:464: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:480: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:491: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:507: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:529: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:542: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:568: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:572: error: `LPUNKNOWN' has not been declared
    C:/Program Files/CodeBlocks/include/objidl.h:575: error: `LPUNKNOWN' has not been declared
    C:/Program Files/CodeBlocks/include/objidl.h:585: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:589: error: `LPUNKNOWN' has not been declared
    C:/Program Files/CodeBlocks/include/objidl.h:590: error: `LPUNKNOWN' has not been declared
    C:/Program Files/CodeBlocks/include/objidl.h:595: error: `IUnknown' has not been declared
    C:/Program Files/CodeBlocks/include/objidl.h:596: error: `IUnknown' has not been declared
    C:/Program Files/CodeBlocks/include/objidl.h:668: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:699: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:718: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:732: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:768: error: expected class-name before '{' token
    C:/Program Files/CodeBlocks/include/objidl.h:783: error: expected class-name before '{' token
    Process terminated with status 1 (0 minutes, 4 seconds)
    Le code :
    (A partir de la ligne 31 de unknwn.h, une partie seulement) :
    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
     
    typedef IUnknown *LPUNKNOWN;
    #endif
    #ifndef __IClassFactory_INTERFACE_DEFINED__
    #define __IClassFactory_INTERFACE_DEFINED__
    #undef INTERFACE
    #define INTERFACE IClassFactory
    DECLARE_INTERFACE_(IClassFactory,IUnknown)
    {
    	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
    	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    	STDMETHOD_(ULONG,Release)(THIS) PURE;
    	STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
    	STDMETHOD(LockServer)(THIS_ BOOL) PURE;
    };
    Le SDK c'est celui de mingw oui je crois, j'ai remplacé tous les fichiers par ceux de w32api-3.6.tar.gz téléchargé sur leur site.

  10. #10
    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
    Ce sont surtout les trucs AVANT la ligne 31 qui sont intéressants...
    PS: La ligne 31, c'est bien le typedef ?
    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.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Par défaut
    oui typedef c'est la ligne 31

    v'la tout le unknwn.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
    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
     
    #ifndef COM_NO_WINDOWS_H
    #include <windows.h>
    #endif
     
    #ifndef _UNKNWN_H
    #define _UNKNWN_H
    #if __GNUC__ >=3
    #pragma GCC system_header
    #endif
     
    #ifdef __cplusplus
    extern "C"{
    #endif
    #include <objfwd.h>
    #include <wtypes.h>
     
    void * __RPC_USER MIDL_user_allocate(size_t);
    void __RPC_USER MIDL_user_free(void*);
    EXTERN_C const IID IID_IUnknown;
    EXTERN_C const IID IID_IClassFactory;
    #ifndef __IUnknown_INTERFACE_DEFINED__
    #define __IUnknown_INTERFACE_DEFINED__
    #undef INTERFACE
    #define INTERFACE IUnknown
    DECLARE_INTERFACE(IUnknown)
    {
    	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
    	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    	STDMETHOD_(ULONG,Release)(THIS) PURE;
    };
    typedef IUnknown *LPUNKNOWN;
    #endif
    #ifndef __IClassFactory_INTERFACE_DEFINED__
    #define __IClassFactory_INTERFACE_DEFINED__
    #undef INTERFACE
    #define INTERFACE IClassFactory
    DECLARE_INTERFACE_(IClassFactory,IUnknown)
    {
    	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
    	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    	STDMETHOD_(ULONG,Release)(THIS) PURE;
    	STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
    	STDMETHOD(LockServer)(THIS_ BOOL) PURE;
    };
    typedef IClassFactory *LPCLASSFACTORY;
    #endif
    HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(IUnknown*,REFIID,void**);
    void __RPC_STUB IUnknown_QueryInterface_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
    ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(IUnknown*);
    void __RPC_STUB IUnknown_AddRef_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
    ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(IUnknown*);
    void __RPC_STUB IUnknown_Release_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
    HRESULT STDMETHODCALLTYPE IClassFactory_RemoteCreateInstance_Proxy(IClassFactory*,REFIID,IUnknown**);
    void __RPC_STUB IClassFactory_RemoteCreateInstance_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
    HRESULT __stdcall IClassFactory_RemoteLockServer_Proxy(IClassFactory*,BOOL);
    void __RPC_STUB IClassFactory_RemoteLockServer_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
    HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Proxy(IClassFactory*,IUnknown*,REFIID,void**);
    HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Stub(IClassFactory*,REFIID,IUnknown**);
    HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Proxy(IClassFactory*,BOOL);
    HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Stub(IClassFactory*,BOOL);
     
    #if (!defined (__cplusplus) || defined (CINTERFACE)) \
        && defined (COBJMACROS)
    #define IUnknown_QueryInterface(T,r,O) (T)->lpVtbl->QueryInterface(T,r,O)
    #define IUnknown_AddRef(T) (T)->lpVtbl->AddRef(T)
    #define IUnknown_Release(T) (T)->lpVtbl->Release(T)
    #define IClassFactory_QueryInterface(T,r,O) (T)->lpVtbl->QueryInterface(T,r,O)
    #define IClassFactory_AddRef(T) (T)->lpVtbl->AddRef(T)
    #define IClassFactory_Release(T) (T)->lpVtbl->Release(T)
    #define IClassFactory_CreateInstance(T,p,r,O) (T)->lpVtbl->CreateInstance(T,p,r,O)
    #define IClassFactory_LockServer(T,f) (T)->lpVtbl->LockServer(T,f)
    #endif /* COBJMACROS */
    #ifdef __cplusplus
    }
    #endif
    #endif

  12. #12
    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
    Tu compiles en C ?
    On dirait qu'il manque le typedef struct IUnknown IUnknown, ce qui peut provoquer les erreurs en ligne 31...
    Mais pourquoi manquerait-il ???
    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.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Par défaut
    euh je compile en c++

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Par défaut
    personne n'a d'idées?
    même si c'est une mini-piste, hésitez pas à répondre, parce que là je vois pas trop où creuser

  15. #15
    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
    Tu n'aurais pas fais une bêtise au niveau des namespaces ?
    Genre, using namespace std dans un header, ou bien un namespace ouvert et non fermé, etc. ?
    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.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Par défaut
    problème résolu, j'ai utilisé boost à la place de ce que je voulais faire. J'ai abandonné
    Merci quand même de vos réponses

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

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