|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
[C++] Callback template: perchè non funziona?
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? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Prova con DWORD WINAPI invece di DWORD CALLBACK
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Già provato anche con _stdcall di cui WINAPI e CALLBACK sono alias.
Sembra proprio che sia l'utilizzo di una funzione o metodo template statico che non gli aggrada, eppure dovrebbe essere corretto. Il compilatore è VS2005. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:11.