Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
główna pętla encji w c #
#1
Hej, mam problemy z odczytywaniem GameObjectManagera z moim sterownikiem w C #. Nie udaje się po pierwszym przeczytaniu, żadnych pomysłach?   To jest kod, z którym mam problem, nie udaje mu się przy pierwszym czytaniu.             Kod:           public unsafe void mainWorker () {while (! closing) {GameObjectManager objectManager = new GameObjectManager (); objectManager = _dm. readStructure <GameObjectManager> (baseAddress + (ulong) Offsets, GAME_OBJECT_MANAGER, Marshal, SizeOf (objectManager)); BaseObject * currentObjectPointer = objectManager. taggedObjects; LastObjectBase * LastObjectPointer = objectManager. lastTaggedObject; GameObject gameObject = new GameObject (); BaseObject baseObject = new BaseObject (); if (objectManager. taggedObjects == null || objectManager. lastTaggedObject == null) Konsola. WriteLine ("Nie odczytałem poprawnie GameObjectManager."); Konsola. WriteLine ("currentObjectPointer:" + * (int *) currentObjectPointer); Konsola. WriteLine ("LastObjectPointer:" + * (int *) LastObjectPointer); while (currentObjectPointer! = LastObjectPointer) {Console. WriteLine ("test1"); GameObjectManager gameObjectManager = new GameObjectManager (); gameObjectManager = _dm. readStructure <GameObjectManager> (baseAddress + (ulong) Offsets, GAME_OBJECT_MANAGER, Marshal, SizeOf (gameObjectManager)); jeśli (gameObjectManager. lastTaggedObject! = LastObjectPointer) zepsuje się; Konsola. WriteLine ("test2"); baseObject = _dm. readStructure <BaseObject> (* (int *) currentObjectPointer, Marshal, SizeOf (baseObject)); gameObject = _dm. readStructure <GameObject> (* (int *) baseObject, obj, Marshal, SizeOf (gameObject)); Konsola. WriteLine ("Tag obiektu:" + gameObject. M_tag); currentObjectPointer = baseObject. nextObjectLink; }
Reply
#2
Zacytować: Originally Posted by kengpenguin Hej, mam problemy z odczytywaniem GameObjectManagera z moim sterownikiem w C #. Nie udaje się po pierwszym przeczytaniu, żadnych pomysłach? Skąd wiesz, że to się nie udaje? Jakie błędy dostałeś? Co pisze na konsoli? Również to, co napisałeś, jest oczywiście niekompletne. Skąd mam wiedzieć, że obiekt _dm jest właściwie tworzony? Co przychodzi po twoim drugim poziomie podczas pętli?
Reply
#3
@ Kengpenguin Przywróciłem treść postu, proszę powstrzymać się od jej usunięcia. OT: Czy funkcja sterownika zwraca STATUS_SUCCESS? spróbuj wydrukować argumenty otrzymane przez copyMemory. Wydrukuj wszystkie bajty, które zostały przeczytane (zanim zadzwonisz do PtrToStructure), sprawdź, czy rzeczywiście czytasz to, kim myślisz, że jesteś itd.
Reply
#4
Zacytować: Napisał MarkHC @ Kengpenguin Przywróciłem treść postu, proszę powstrzymać się od jej usunięcia. OT: Czy funkcja sterownika zwraca STATUS_SUCCESS? spróbuj wydrukować argumenty otrzymane przez copyMemory. Wydrukuj wszystkie bajty, które zostały przeczytane (zanim zadzwonisz do PtrToStructure), sprawdź, czy rzeczywiście czytasz to, kim myślisz, że jesteś itd. Więc debuguję tego sterownika i mam szybkie pytanie. Czy ma znaczenie, czy aplikacja trybu użytkownika jest 32-bitowa? Sprawdziłem rozmiar pustki * (która jest częścią struktury RWM wysłanej do sterownika) i ma 4 bajty. EDYCJA: Nieważne, pustka * wskazuje tylko na bufor zawierający zwróconą wartość operacji odczytu.
Reply




Users browsing this thread: 1 Guest(s)