РЕДАКТИРОВАТЬ: вздох, я пропустил часть "IDA Pro".Я просто оставлю это здесь для развлекательной ценности, на случай, если кому-то интересно, что "this + 4" делает в обычном коде C ++.
"this + 4" берет ваш текущий указатель this, движется впередв четыре раза больше его размера.Затем он преобразует это в указатель байта и читает его.
Учтите это:
struct A {
void foo();
int x;
int y;
};
sizeof (A) в 32-битной системе, скорее всего, 8 байтов.
A myArray[8];
A *pA = myArray;
Теперь pA указывает на & myArray [0].
pA++;
Теперь pA указывает на & myArray [1], то есть он переместился на 8 байт вперед.
void A::foo() {
A *pA = this + 4;
}
Если вы вызовете это для & myArray [0], оно будет указывать на & myArray [4], то есть на 32 байта дальше.