2010-01-20 8 views
0

J'ai inclus l'en-tête QMutex et je l'utilise comme indiqué ci-dessous. Mais je reçois l'erreur suivante:Pourquoi QMutex est-il inconnu?

error C2146: syntax error : missing > ';' before identifier > '_RecorderParamsMutex'

error C4430: missing type specifier - int assumed. > Note: C++ does not support default-int

error C4430: missing type specifier -> int assumed. Note: C++ does not > support default-int

#ifndef RECORDERinterface_h 
    #define RECORDERinterface_h 
    #include "qstring.h" 
    #include "ccc.h" 
    #include "ddd.h" 
    #include <qmutex.h> 
    #include "eee.h" 

using namespace Common; //for aaaaa 

class RecorderInterface{ 
    //the implemented recorders are my friends, the may access all my private stuff :) 
    friend class A; 
    friend class B; 

public: 
    RecorderInterface();  
    bool   setParam(RecorderPrintParam *up); 


private: 
    QMutex   _RecorderParamsMutex; 
}; 

#endif 
+2

ne pas répondre à votre question, mais des noms comme _RecorderParamsMutex (ceux qui commencent par un trait de soulignement et une lettre majuscule) sont réservés pour la mise en œuvre du C - vous n'êtes pas autorisé à créer des noms dans votre propre code. –

+0

ok merci, avez-vous un lien vers cette norme? Je peux donc examiner de plus près cette norme de dénomination. – Christoferw

+0

La norme n'est pas disponible en ligne - vous devez payer pour cela. Il y a divers brouillons qui frappent cependant. –

Répondre

3

En regardant le header file, les déclarations de classe sont enveloppées par un #ifdef. Essayez comme ceci:

#define QT_THREAD_SUPPORT 
#include <qmutex.h> 

Cela devrait probablement être un #define au niveau du projet pour que d'autres définitions de filetage sont disponibles.

0

espace de noms manquant? Je ne suis pas familier avec QMutex, mais s'il est livré avec une bibliothèque, il devrait être défini avec l'espace de noms de la bibliothèque. Sauf si c'est "commun".

2

Quelle version de Qt utilisez-vous? De votre style d'en-tête, il ressemble Qt3

« Les versions antérieures de Qt propose une option de construire la bibliothèque sans support de fil. Depuis Qt 4.0, les discussions sont toujours activés. » [source]

Êtes-vous sûr que vous avez le support de fil intégré dans la bibliothèque?

+0

oui j'utilise QT 3.3 – Christoferw