Désolé de poser cette question, mais tous les exemples que j'ai pu trouver (et il y en a un paquet) traite d'un thread dans une appli avec une seule classe (la principale quoi)... et sans appel sur une autre fonction.
D'ou mon problème!
J'ai une classe nommée "CFileOp".
----> dans le "FileOp.h", je déclare ma fonction Thread, et une autre fonction, tout ça en "private" :
-----------------------------------------------------------------
static DWORD WINAPI ThreadProc(LPVOID lpParam);
void CopyOperation();
-----------------------------------------------------------------
----> dans le "FileOp.cpp", je définis ma fonction :
-----------------------------------------------------------------
DWORD WINAPI CFileOp::ThreadProc(LPVOID lpParam)
{
CFileOp &fileop = (CFileOp&)lpParam;
fileop.CopyOperation();
return 0;
}
-----------------------------------------------------------------
-----> et je lance mon Thread dans une fonction en faisant :
-----------------------------------------------------------------
DWORD ThreadId;
CreateThread(NULL,NULL,ThreadProc,(LPVOID)this,NULL,&ThreadId);
-----------------------------------------------------------------
Comme ça, ça compile, mais ça plante, et ca ne m'étonne pas trop... vraisemblablement un mic mac dans la mémoire avec le passage de "(LPVOID)this" en paramètre.
Mais si je ne le mets pas et que je lance juste "CopyOperation();", il m'envoie ballader parce que "CopyOperation()" n'est pas static... mais je ne peux pas la déclarer static, parce qu'elle ne l'est pas...
Pitié, sortez moi de ce cauchemard... je suis sûr que c'est une brouitille...