[Visual Basic 2010]System.NullReferenceException

02/11/2011 16:49 .Dêvile-#1
Hallo Elitepvpers,

ich hoffe ich bin hier am richtigen Platz, also ich hab einen Emulator versucht zuverbessern aber es kommt dieser Fehler:






System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei GalaxyEmu.Game.CharacterItems.MoveItem(GameClient Client, Int32 ItemID, Int32 NewPosition, Int32 Quantity) in D:\Projects\GalaxyEmu\GalaxyEmu\Game\Client\Charac terItems.vb:Zeile 343.
bei GalaxyEmu.Game.GameParser.MoveItem(String ExtraData) in D:\Projects\GalaxyEmu\GalaxyEmu\Game\GameParser.vb :Zeile 537.
bei GalaxyEmu.Game.GameParser.ParseBasic(String Packet) in D:\Projects\GalaxyEmu\GalaxyEmu\Game\GameParser.vb :Zeile 1759.
bei GalaxyEmu.Game.GameParser.Unpack(String Packet) in D:\Projects\GalaxyEmu\GalaxyEmu\Game\GameParser.vb :Zeile 33.



Und hier der Abschnitt von "MoveItems" bei CharacterItems:




Quote:
PublicSub MoveItem(ByVal Client AsGameClient, ByVal ItemID AsInteger, ByVal

NewPosition AsInteger, ByVal Quantity AsInteger)

Dim Item AsInteger = GetObjectOnPos(NewPosition).TemplateID

If IsObjectOnPos(NewPosition) ThenExit SubForEach TempItem AsItemIn

ListOfItems


If TempItem.UniqueID = ItemID Then
(Der Code geht noch wieter, nur er ist ziemlich lange)

Vielen Dank für jede Hilfe =)
02/12/2011 15:39 Karnerbi#2
Schon mal nach der Exception gegoogelt? Anhand des Namens sagt sie mir schon, dass du einer Variable "NULL" referenzieren willst. Anhand so eines Problems würde ich den Debugger verwenden.
02/12/2011 23:15 .Dêvile-#3
Ich hab ihn gedebuggt, jedoch wird der Fehler in den FehlerLogs vom Emulator rein geschrieben aber beim Debuggen (in VB) kommt kein Fehler.
02/13/2011 15:26 krustx#4
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
der Fehler entsteht immer, wenn du ein Objekt nicht mir New erstellt hast und versuchs methoden oder eigenschaften davon zu verwenden, Beispiel:
Quote:
Dim wc as System.Net.Webclient
wc.downloadstring("http://google.de")
Richtig wäre natürlich
Quote:
Dim wc as new System.Net.Webclient
wc.downloadstring("http://google.de")
oder
Quote:
Dim wc as System.Net.Webclient = new System.Net.Webclient
wc.downloadstring("http://google.de")