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

Visual C++ Discussion :

Déclaration d'un objet CMutex


Sujet :

Visual C++

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Points : 256
    Points
    256
    Par défaut Déclaration d'un objet CMutex
    Bonjour,

    j'ai fait une petite classe CSharedMemory dont voici le .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
     
    class CSharedMemory
    {
     
    private :
    	CString m_strName;
    	DWORD m_size;
    	HANDLE m_hMapFile;
    	LPVOID m_pMappedView;
    	CMutex m_mtx;
     
    public :
    	CSharedMemory(DWORD size, LPCSTR szName);
    	~CSharedMemory();
    	int Create();
    	int Open();
    	int Map();
    	int Write(CONST VOID* Source);
    	int Read(VOID* Destination);
    };
    J'ai un petit soucis :
    le constructeur de l'objet CMutex m_mtx est défini comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CMutex( BOOL bInitiallyOwn = FALSE, LPCTSTR lpszName = NULL, LPSECURITY_ATTRIBUTES lpsaAttribute = NULL );
    Donc quelle est la solution générique pour instancier un tel objet dans le constructeur de ma classe ?
    Moi j'ai fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CSharedMemory::CSharedMemory(DWORD size, LPCSTR szName) :
    	m_size(size),
    	m_strName(szName),
    	m_mtx(FALSE, m_strName+"_MTX"),
    	m_hMapFile(NULL),
    	m_pMappedView(NULL)
    {
     
    }
    Mais c'est parce que j'ai pas trouvé d'autres façons de faire. J'aurais préféré l'appeler autrement, explicitement comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CString tmp = m_strName;
    tmp += "_MTX";
    CMutex m_mtx(FALSE, tmp);
    Donc de façon générale, y a t-il une autre façon d'appeler un constructeur d'un objet que celle que j'ai trouvé ?

    Merci par avance.
    @+

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Ben non, on ne peut appeler le constructeur d'un objet fils que dans les initialiseurs de membres.

    (à moins d'utiliser un pointeur, ce que je te déconseillerais dans le cas présent).

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Points : 256
    Points
    256
    Par défaut
    ha oui exact, on pourrait aussi passer par un pointeur ! C'est bien vrai.
    Bon disons que pour le cas, ça ne m'apporterait rien de plus.

    Merci en tout cas

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/11/2007, 14h51
  2. Déclaration automatique d'objets
    Par Nikoalas dans le forum C#
    Réponses: 2
    Dernier message: 05/11/2007, 08h25
  3. [VBA-Excel] Déclaration d'un objet
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/09/2006, 15h31
  4. Réponses: 13
    Dernier message: 01/06/2006, 17h20
  5. [Convention]déclarations des objets
    Par allstar dans le forum Langage
    Réponses: 4
    Dernier message: 17/11/2005, 00h57

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