Est-ce que quelqu'un peut me dire si les deux lignes qui suivent sont équivalentes SUR TOUTES LES VERSIONS d'AMS ?
handle_table=*(unsigned long**)(*(short*)(HeapDeref+10));
handle_table=*(unsigned long**)*((HANDLE*)HeapDeref+4+AMS_2xx);
Merci.
Et une réponse efficace, svp ??
J'ai regardé: à priori c'est le même effet dans tthdex, pourtant c'est pas pareil.
Kevin, où es-tu ??
La deuxième fonctionne sur tout AMS, la première non. La première présuppose AMS 2:
handle_table=*(unsigned long**)(*(short*)(HeapDeref+10));
<=>
handle_table=*(unsigned long**)*((HANDLE*)HeapDeref+5);
Vu que HANDLE fait 2 octets comme short, c'est juste une question de place des parenthèses et d'arithmétique de pointeurs (un calcul sur un pointeur vers une fonction calcule comme sur des nombres, alors que pour un short * ou HANDLE *, les offsets sont multipliés par 2).
[edit]Edité par Kevin Kofler le 23-12-2001 à 18:08:24[/edit]
OK, merci Kevin.
Je me demandais, comme Thomas, si cette ligne ne pouvait pas être changée pour ne plus donner de warning. J'essayais, mais sans grand espoir car si lui (ou toi) n'y arrivez pas, alors moi...