Bonjour,

J'ai une application composée d'une IHM sur laquelle il y a 2 bouton. Un pour lancer un thread et un autre pour l'arrêter. Lorsque je lance mon thread (CreateThread() ou _beginthread()) avec la fonction qu'il doit exécuter passée en paramètre, j'appelle une fonction addition pour faire des tests, cela marche sans problèmes.
Maintenant, il serai intéressant pour moi que le thread qui fait l'addition puisse prévenir mon application principale lorsqu'il a fini son traitement. J'essaye d'utiliser les fonctions PostThreadMessage(), PostMessage(), mais rien à faire, je n'y arrive pas.

Voilà ma fonction addition :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
DWORD WINAPI addition(LPVOID lpParam)
{
int a,b;
DWORD parametre;
a=9;
b=5;
c=a+b;
parametre = *((DWORD*)lpParam);
PostThreadMessage(parametre,WM_USER,0,0)
return c;
}
et voilà les 2 erreurs que j'ai :

Error 1 error LNK2028: unresolved token (0A00000E) "extern "C" int __stdcall PostThreadMessageW(unsigned long,unsigned int,unsigned int,long)" (?PostThreadMessageW@@$$J216YGHKIIJ@Z) referenced in function "unsigned long __stdcall `anonymous namespace'::addition(void *)" (?addition@?A0x77e23028@@$$FYGKPAX@Z) test_thread1.obj


Error 2 error LNK2019: unresolved external symbol "extern "C" int __stdcall PostThreadMessageW(unsigned long,unsigned int,unsigned int,long)" (?PostThreadMessageW@@$$J216YGHKIIJ@Z) referenced in function "unsigned long __stdcall `anonymous namespace'::addition(void *)" (?addition@?A0x77e23028@@$$FYGKPAX@Z) test_thread1.obj


Autre chose, je ne voudrai pas que mon application principale se bloque dans l'attente du message de la fonction addition().

Merci de votre aide.