Ciao a tutti,
stavo cercando di capire un programma scritto da altre persone, ma sono veramente anni luce distante dalle conoscenze di chi lo ha scritto.
Il primo dubbio che ho riguarda il parametro passato ad una funzione.
questo e` il prototipo della funzione in oggetto:
codice:
static UINT AFX_CDECL ShutDownThread( LPVOID lpParam );
A parte che non so il significato di AFX_CDECL , ho notato che tale funzione richiede il parametro di tipo LPVOID
Ora vi mostro l` inizio della definizione di tale finzione:
codice:
UINT AFX_CDECL CShutDWNDlg::ShutDownThread( LPVOID lpParam )
{
CShutDWNDlg *pDlg = (CShutDWNDlg*)lpParam;
char pName[ 128 ] = { 0 };
char pPasswd[ 128 ] = { 0 };
char pDomain[ 128 ] = { 0 };
.......
lpParam e` il nostro parametro passato dalla funzione e tramite casting viene utilizzato per inizializzare il puntatore a classe CShutDWNDlg pDlg.
Il dubbio piu` grande e` nella chiamata di tale funzione
codice:
m_pThread = AfxBeginThread( ShutDownThread, this );
Tale funzione e` a sua volta un parametro di AfxBeginThread()
Avevamo detto che ShutDownThread si aspettava un parametro tipo LPVOID, ma qui non viene passato.
Come mai ??
Coem fa a funzionare tale funzione ??
Grazie in anticipo a tutti coloro che mi daranno qualche regguaglio.
Ciao
Sergio