Salut salut, voila j'ai un petit soucis concernant le passage de paramètre à un thread.
Voila d'abord le bout de code :
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
(*Déclaration dans la classe TWiimote*)
class function cReadParseThreadFunction(param : Pointer)
 	                                                      : Cardinal; virtual; stdcall; export;
function bBeginAsyncRead () : Boolean; virtual; stdcall; export;
 
(* Fonction bBeginAsyncRead *)
    function T_Wiimote.bBeginAsyncRead () : Boolean;  stdcall; export;
 
 	    var
	      read, err : DWORD;
	      ThreadId : Cardinal;
 
	    label
 	      ended;
 
 	    begin
      wiimote := self;
 	      if(not ReadFile(m_Handle, m_ReadBuff, REPORT_LENGTH, read, @m_Overlapped))
 	        then
 	          begin
	            err := GetLastError();
 
 	            if(err <> ERROR_IO_PENDING)
 	              then
	                begin
	                  Writeln ('WARNING : Readfile failed');
	                  result := false;
 	                  goto ended;
                 end; //Fin condition err
 
	          end; //Fin condition ReadFile
 
 	      if(m_ReadParseThread = 0)
 	        then
 	          begin
 	            m_ReadParseThread := THandle(BeginThread(nil, 0,
                      Addr(T_Wiimote.cReadParseThreadFunction), Addr(self), 0, ThreadId));
 
 	      result := true;
 
 	  ended:
 	    end;
 
(*La fonction thread *)
  class function T_Wiimote.cReadParseThreadFunction(param : Pointer) : Cardinal;
 	                                                                        stdcall; export;
 
	    var
 	      remote : T_Wiimote;
 	      overlapped : TOverlapped;
 	      exit_code : Cardinal;
 	      wait,time,read : DWord;
 
 	    label
 	      connection_lost_label;
 
 	    begin
 	      remote := (PT_Wiimote(param))^;
 	      overlapped := remote.m_Overlapped;
Voila seulement l'addresse contenu dans param ne correspond pas du tout à l'adresse de l'instance de la classe. Donc, je voudrais savoir si quelqu'un pouvait m'éclairer sur la situation. Merci !