Autor Beitrag
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: So 29.08.10 18:24 
Ich schreibe gerade eine Wrapper für WriteProcessMemory etc.

Jetzt Habe ich da sowas: function Read<T>(address:Cardinal; var X:T):Boolean;
Ist ja schonmal ganz Praktisch, da ich mit:
Read<Byte>(xxx, foo); und
Read<Cardinal>(yyy, bar);


Variablen verschiedener Größen lesen kann. Auch Records sind kein Problem.
Nur: Ist es nicht möglich, den Compiler die Größe automatisch bestimmen zu lassen, ohne Generics (die ständigen <Byte> nerven)

Müsste doch gehn, oder?
Sonst hab ich ja nicht viel gekonnt im Vergleich zu:
function Read(addres:Cardinal; var X; count:Cardinal):Boolean;
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: So 29.08.10 19:16 
Nein ohne Generics kannst du das nicht herausfinden. Da wird praktisch nur ein Pointer übergeben.

Bei Generics musst du den Typ nicht explizit angeben, wenn der klar ist (ausser bei Var/Out/Return :(). Käme bei dir also höchstens für das Write in Frage.

// Edit: sorry paar mal editiert :)
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: So 29.08.10 19:36 
Dumm gelöst. Generics werden doch eh vom Compiler übersetzt. Und besonders bei Var Paramtern sollte der das doch machen >.<


EDIT: Noch dümmer: Der Live-Syntaxcheck kann anscheinend keine Generics (D2009)