Olá Íscaro,
Este é um problema clássico. Todo membro do tipo função tem como primeiro parametro escondido o ponteiro this.
Ou seja, sua função playerThread(LPVOID args) é resolvido para playerThread(Truco* this, LPVOID args). Para resolver este problema vc pode:
1. Transformar playerThread para static, caso vc não necessite usar os membros da instância dentro desta thread.
2. Caso vc precise acessar a instância dentro desta thread vc precisará:
2.1 Criar uma funcão estatica que possa ser usada por CreateThread, passando como argumento o this
2.2 Esta função estática redirecionará para a função instanciada
2.3 CreateThread chama a função estática passando em args o this.
Algo deste tipo (em pseudo codigo):
class Truco
{
...
public:
static DWORD WINAPI threadFunc( LPVOID args )
{
Truco* self = reinterpret_cast<Truco*>( args );
self->playerThread();
}
};
...
CreateThread( ..., &Truco::threadFunc, this );
Fabio Galuppo