Bonjour,
j'ai fait une petite classe CSharedMemory dont voici le .h :
J'ai un petit soucis :
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); };
le constructeur de l'objet CMutex m_mtx est défini comme suit :
Donc quelle est la solution générique pour instancier un tel objet dans le constructeur de ma classe ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CMutex( BOOL bInitiallyOwn = FALSE, LPCTSTR lpszName = NULL, LPSECURITY_ATTRIBUTES lpsaAttribute = NULL );
Moi j'ai fait comme ça :
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
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) { }
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é ?
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);
Merci par avance.
@+
Partager