dans une de mes class j'ai à lancé un thread pour effectuer du traitement sur une pile.
déja...je sais qu'il existe le composant TThread, mais je ne désire pas l'utiliser
a la compilation du code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
        LPDWORD dwThreadId;
        DWORD dwThrdParam ;
 
        this->hThread = CreateThread( NULL, 0,
        this->ThreadFunc,
        &dwThrdParam,
        0,
        dwThreadId);    //<- ici ligne 59
j'obtien quelques messages très significatif :p ...

[C++ Erreur] ftig_stack.cpp(59): E2034 Impossible de convertir 'unsigned long (__stdcall * (_closure )(void *))(void *)' en 'unsigned long (__stdcall *)(void *)'
[C++ Erreur] ftig_stack.cpp(59): E2342 Mauvaise correspondance de type dans le paramètre 'lpStartAddress' ('unsigned long (__stdcall *)(void *)' désiré, 'void' obtenu)
dans le code on trouve ""LPDWORD dwThreadId;"" certains noterons que dans certain tuto..et même selon msdn...c'est plutot un DWORD....et pourtant...ailleur dans la msdn on trouve LPDWORD
( http://msdn2.microsoft.com/en-us/library/ms682516.aspx et http://msdn2.microsoft.com/en-us/library/ms682453.aspx )

bref..j'ai essayé avec les 2..sans réussir.
je ne sais pas trop quoi faire pour berné mon compilo (ex. ajouté des trucs comme (void *) devant ...ca s'appel comment cette méthode.."casting" non ?)
j'en ai essayé quelques combinaisons selon les trucs renvoyé par les messages d'erreures