Entwickler-Ecke
Basistechnologien - Operator Problem
-CrimeTime- - Mi 20.10.10 22:52
Titel: Operator Problem
Hallo,
ich bekomme diese Fehlermeldung: "Der Operator "+" kann nicht auf Operanden vom Typ "System.IntPtr" und "int" angewendet werden."
in dieser Zeile :
FirstObject = Reader.ReadUInt32((IntPtr)(ObjectManager + FirstObjectOffset));
muss dazu sagen das ich ein Anfänger bin, habe schon Gegooglet aber dort bekomme ich kaum hilfestellung zu diesem Fehler.
Gruß CrimeTime
Moderiert von
Christian S.: Topic aus Sonstiges (.NET) verschoben am Do 21.10.2010 um 09:53
jaenicke - Do 21.10.10 06:11
Hallo und :welcome:
Einer deiner beiden Operanden ist eben ein int und einer ein IntPtr. Also musst du den, der ein IntPtr ist auf int casten, wenn du die addieren willst.
Ich vermute aber das willst du gar nicht. Denn so addierst du nicht den Wert im IntPtr sondern den Zeiger auf die Struktur IntPtr...
Um einen Offset zu einem IntPtr zu addieren gibt es (wie sollte es auch sonst heißen) Add:
http://msdn.microsoft.com/de-de/library/system.intptr.add.aspx
Also vermute ich einmal, dass ObjectManager der IntPtr ist, dann sieht das so aus:
C#-Quelltext
1:
| FirstObject = Reader.ReadUInt32(ObjectManager.Add(FirstObjectOffset)); |
-CrimeTime- - Do 21.10.10 13:32
Danke dieses Problem wäre dann ja gelöst, aber es traten nun neue Probleme auf:
C#-Quelltext
1:
| ClientConnection = (IntPtr)Reader.ReadInt32(StaticClientConnection); |
Markiert "
Reader.ReadInt32(StaticClientConnection);"
Fehlermeldung:
Die beste Übereinstimmung für die überladene MemoryReader.Memory.ReadInt32(System.IntPtr)-Methode hat einige ungültige Argumente.
C#-Quelltext
1:
| CurrentObject.BaseAddress = FirstObject; |
Markiert:
FirstObject;
Fehlermeldung:
Der Typ "System.IntPtr" kann nicht implizit in "uint" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)
Edit:
ClientConnection = (IntPtr)Reader.ReadInt32(StaticClientConnection);
gefixed mit
C#-Quelltext
1:
| ClientConnection = (IntPtr)Reader.ReadInt32((IntPtr)StaticClientConnection); |
Edit2: Alle Fehler behoben.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!