tomminno
04-09-2007, 11:21
class Run
{
DWORD CALLBACK run();
}
template<class T, DWORD (__stdcall T::*F)()>
DWORD CALLBACK Callback(void *p)
{
return ((reinterpret_cast<T*>(p))->*F)();
}
CreateThread(NULL, 0, Callback<_run, &Run::run>, this, 0, &dwTid);
Perchè il compilatore si lamenta che non riesce a convertire DWORD (_stdcall*)(void*) in LPTHREAD_START_ROUTINE visto che sono la stessa cosa?
{
DWORD CALLBACK run();
}
template<class T, DWORD (__stdcall T::*F)()>
DWORD CALLBACK Callback(void *p)
{
return ((reinterpret_cast<T*>(p))->*F)();
}
CreateThread(NULL, 0, Callback<_run, &Run::run>, this, 0, &dwTid);
Perchè il compilatore si lamenta che non riesce a convertire DWORD (_stdcall*)(void*) in LPTHREAD_START_ROUTINE visto che sono la stessa cosa?