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