Sto lavorando su un profiler .NET che sto scrivendo in C++ (una DLL che utilizza ATL). Voglio creare un thread che scrive in un file ogni 30 secondi. Voglio che la funzione thread per essere un metodo di una delle mie classiCreare thread all'interno della DLL
DWORD WINAPI CProfiler::MyThreadFunction(void* pContext)
{
//Instructions that manipulate attributes from my class;
}
quando provo ad avviare il thread
HANDLE l_handle = CreateThread(NULL, 0, MyThreadFunction, NULL, 0L, NULL);
ho ottenuto questo errore:
argument of type "DWORD (__stdcall CProfiler::*)(void *pContext)"
is incompatible with parameter of type "LPTHREAD_START_ROUTINE"
Come correttamente creare un thread all'interno di una DLL? Qualsiasi aiuto sarebbe apprezzato.
I puntatori di funzione e i puntatori alle funzioni membro sono molto diversi. Devi dichiarare la funzione membro come statica. –
possibile duplicato di [Come usi CreateThread per le funzioni che sono membri della classe?] (Http://stackoverflow.com/questions/1372967/how-do-you-use-createthread-for-functions-which-are-class -Membri) –