Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Automatyczne dereferencje
#1
Mogę ci po prostu pokazać, co robię, więc jestem po prostu bawiąc się umierającym światłem, 1.5.2 dla ciekawskich. Zgaduję, że statyczna ptr jest w pewnym stopniu podstawowym odtwarzaczem lub czymś w tym rodzaju;     Kod:   class baseplayer {uintptr_t uthis = (uintptr_t) gamedll + 0x1915C78; public: int iMedKits () {// chcę zrobić: // narzędzie powrotu: Dereference (2, uthis, 0xE8, 0x118); static uintptr_t baseptr = * (uintptr_t *) uthis + 0xE8; static uintptr_t medkitptr = * (uintptr_t *) baseptr + 0x118; return * (uintptr_t *) medkitptr; } Int iClip1 () {static uintptr_t baseptr = * (uintptr_t *) uthis + 0xC0; static uintptr_t secndbase = * (uintptr_t *) baseptr + 0x188; static uintptr_t clip1ptr = * (uintptr_t *) secndbase + 0x40; return * (uintptr_t *) clip1ptr; }};   zamiast mnie dereferencje jak ja tutaj, jak mogę zrobić funkcję dereferencji to, ile razy potrzebuję, jeśli określę ilość razy, kiedy chcę ją odesłać, a następnie przesunięcia? próbowałem;     Kod:   int Dereferencja (int razy, uintptr_t ptr, uintptr_t off1 = 0x0, uintptr_t off2 = 0x0, uintptr_t off3 = 0x0, uintptr_t off4 = 0x0) {uintptr_t curAddr = 0x0; int ret = NULL; for (int i = 0; i <razy; i ++) {if (i == 0 && times <= i) return * (uintptr_t *) ptr; if (i == 0 && times> i) {curAddr = * (uintptr_t *) ptr + off1; dalej ; } If (i == 1 && times <= i) return * (uintptr_t *) curAddr; if (i == 1 && times> i) {curAddr = * (uintptr_t *) curAddr + off2; dalej ; } If (i == 2 && times <= i) return * (uintptr_t *) curAddr; jeśli (i == 2 && razy> i) {curAddr = * (uintptr_t *) curAddr + off3; dalej ; } If (i == 3 && times <= i) return * (uintptr_t *) curAddr; jeśli (i == 3 && razy> i) {curAddr = * (uintptr_t *) curAddr + off4; dalej ; } If (i == 4) return * (uintptr_t *) curAddr; } Return ret; }   na razie właśnie zrobiłem to dla int, ale widzę siebie robiącego szablon dla niego, gdyby to działało tylko dla int ..   wracając do danego pytania; jak mogę auto dereferencji ptr + off1 ... etc ... bez konieczności dereferencji i przechowywania, dereferencji i przechowywania .. etc ..
Reply
#2
@ Yazzn umieścił w tym celu klasę opakowania. Wielopoziomowe opakowanie wskaźnika
Reply
#3
dzięki wam obojgu
Reply




Users browsing this thread: 1 Guest(s)