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.
@+