Toon posts:

[Delphi] Integer variabel veranderd plots van waarde

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik loop nu al een hele tijd naar een stomme fout te staren en snap maar niet wat er gebeurt. Ik ben al lang bezig met een project al zal even kort uitleggen waar ik mee bezig ben. Ik maak een 3d spel wat met 2 - 6 spelers gespeeld moet kunnen worden. Voor netwerk gebruiken we een aangeleverd DirectPlay component, waarmee we eigen gemaakte bericht types kunnen verzenden en ontvangen.
Het spel moet volledig gedistribueerd zijn (behalve dan dat iemand hem mag hosten maar mag dus niet fungeren als server), dus de code is op alle machines identiek.

Nu heb ik in een klasse een private variabel Fn gedeclareerd en deze wordt op 0 geinitialiseerd in de create van de klasse. Verder is er een property n die read only toegang geeft tot Fn. Fn wordt alleen verhoogt in een bepaalde functie die (het aantal spelers - 1) keer wordt aangeroepen.

Ik test het nu met 2 spelers dus zou die waarde 1 moeten zijn. Als ik het spel host klopt dit ook. Alleen als ik de client ben krijg ik ineens een waarde van 19395390583 ofzo.... weet iemand waar dit aan kan liggen ?

Het spijt me dat ik zo'n korte en bondige samenvatting van het probleem geef maar ik ben ten einde raad. Heeft iemand dit wel eens eerder gehad ?

  • Klippy
  • Registratie: Oktober 2000
  • Nu online

Klippy

Still Game

Beetje code zou handig zijn, maar zo te zien wordt je klasse gewoon niet gecreëerd als je cliënt bent...

Steam | SXQncyBhbGwgZ29vZCwgbWFuISDwn5iO


Verwijderd

Topicstarter
code is lastig omdat het ook nog eens verspreid zit over tig units en klassen maar het object wordt wel degelijk gecreeerd, dat zie ik als ik erdoorheen loop en 0 en 1 worden ook toegekend maar een paar stappen verder is hij ineens veranderd... is er een manier om te breaken op het moment dat een variabel veranderd ?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Misschien een hele stomme vraag, maar heb je niet ergens een if op 'server' zijn waarin die variabele wel wordt geinitialiseerd en anders niet?

En staan er arrays fysiek in de buurt? Heb je al met data-breakpoints in de debugger gespeeld? Wordt de variabele als je door de code stept wel correct geinitialiseerd?

Professionele website nodig?


Verwijderd

Topicstarter
Misschien een hele stomme vraag, maar heb je niet ergens een if op 'server' zijn waarin die variabele wel wordt geinitialiseerd en anders niet?
Nee dat is het niet, dit heb ik al getest.
Heb je al met data-breakpoints in de debugger gespeeld?
Bedoel je Watches .... in dat geval ja die gebruik ik de hele tijd
Wordt de variabele als je door de code stept wel correct geinitialiseerd?
Ja als ik door de code step dan initialiseert hij wel

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Verwijderd schreef op 15 juni 2004 @ 02:00:
[...]

Bedoel je Watches .... in dat geval ja die gebruik ik de hele tijd
Nee een data-breakpoint, anders typte ik het niet :)

Je kunt op het adres en lengte van een variabele ook een breakpoint zetten zodat je automatisch in de debugger klapt zodra er op die plaats in het geheugen gelezen of geschreven wordt :)

Professionele website nodig?


Verwijderd

Topicstarter
curry684 schreef op 15 juni 2004 @ 02:09:
[...]

Nee een data-breakpoint, anders typte ik het niet :)

Je kunt op het adres en lengte van een variabele ook een breakpoint zetten zodat je automatisch in de debugger klapt zodra er op die plaats in het geheugen gelezen of geschreven wordt :)
[edit]andere vraag: hij breekt niet bij een assignment aan die variabel.... ik heb de data break gezet op variabel Fn met als size de sizeof(fn) = 4

???

[ Voor 17% gewijzigd door Verwijderd op 15-06-2004 02:18 ]


  • schoene
  • Registratie: Maart 2003
  • Laatst online: 22-05 12:29
-Hangt die file wel aan je project?
-Of is die file een deel van een package die je eerst nog moet compileren
-Mogelijks heb je een oudere versie van die file in een andere directory uit de Project Directories staan. Ik weet dat Borland C++Builder daar problemen mee heeft, dus van Delphi is het ook mogelijk.

Verwijderd

Topicstarter
Ik heb het opgelost.... erg knullig was het uiteindelijk. Ik had een assignment aan een array met index -1. Dankzij de tip van curry merkte ik dat op het moment dat deze assignment werd uitgevoerd de integer waarde de lucht in schoot. Het probleem is nu verholpen.. bedankt voor de hulp !

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

d:)b

Professionele website nodig?


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 24-05 11:06

Robtimus

me Robtimus no like you

Goh, OGO 2.3 bestaat ook nog ;)

Wat voor spel is het dit jaar?

* Robtimus heeft 4 jaar geleden vrijwel dezelfde opdracht gehad ;)

More than meets the eye
There is no I in TEAM... but there is ME
system specs

Pagina: 1