Déclaration d'un objet CMutex
Bonjour,
j'ai fait une petite classe CSharedMemory dont voici le .h :
Code:
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:
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:
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:
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.
@+