J'ai écrit un petit programme pour comprendre comment appeler correctement SuspendThread et GetThreadContext.
Je n'y ai pas réussi.
Le programme consiste à créer un thread 'StarThread' qui ecrit 0, 1 .., 10 à l'écran et se suspend (le thread principal ayant fourni en parametre l'handle).
Pourtant SuspendThread n'agit pas et ne relève pas d'erreur non plus.
Ne parlons pas de GetThreadContext qui donne EIP à 0.
Qu'est-ce qui cloche ?
Merci bcp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39DWORD WINAPI StartThread(LPVOID argThreadHandle) { char lszParam[3]; for(int i=0;i<=10;i++) std::cout<<i<<std::endl; if (SuspendThread((HANDLE) argThreadHandle) == FALSE) { std::cerr<<"Je suis une conne de founction SuspendThread"<<std::endl; return 1; } std::cerr<<"ResumeThread a ete appele ou quoi ?"<<std::endl; return 0; } int main(int, char**) { HANDLE hThread1; DWORD dwGenericThread; hThread1 = CreateThread(NULL,0,StartThread,&hThread1, 0 ,&dwGenericThread); if(hThread1 == NULL) { DWORD dwError = GetLastError(); std::cerr<<"SCM:Error in Creating thread"<<dwError<<std::endl ; return 1; } Sleep(2000); CONTEXT context; context.ContextFlags = CONTEXT_i386 | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT | CONTEXT_EXTENDED_REGISTERS; BOOLEAN succes = GetThreadContext(hThread1, &context); . . . }
		
		
        

   


  Répondre avec citation

 
 
 
 
 
 
 
				
 Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
 est en bas à gauche, ce n'est pas utile de modifier le titre du message
						
Partager