Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#67

Re: Übersetzung Class MagneticWindow

  Alt 12. Okt 2006, 00:09
Habe nochmal im VB Forum nachgefragt wie man das Problem lösen könnte!

Hier die Antwort!

Code:
'Sub/Function....
'...
'Call zPatchVal(VarPtr(sc_aBuf(1)), PATCH_0A, ObjPtr(Me))
'...
'end Sub/Function

'VarPtr
'Die VarPtr-Funktion liefert Ihnen die Startadresse des Speicherbereichs zurück,
'in dem eine Variable (nicht notwendigerweise ihr Inhalt) gespeichert wird.

'ObjPtr
'Die ObjPtr-Funktion liefert Ihnen einen Zeiger auf das Interface eines instanzierten Objekts zurück.

'Hier ein Auszug aus der Offline MSDN (Me in der IDE tippen und F1)
'Das Schlüsselwort Me verhält sich wie eine implizit deklarierte Variable.
'Es steht allenProzeduren in einemKlassenmodul automatisch zur Verfügung.
'Wenn eine Klasse mehrere Instanzen haben kann, stellt Me eine Möglichkeit dar,
'um sich auf die jenige Instanz der Klasse zu beziehen, in der Code ausgeführt wird.

'Private Declare Sub RtlMoveMemory Lib "kernel32.dll" ( _
'                               ByRef Destination As Any, _
'                               ByRef Source As Any, _
'                               ByVal Length As Long)
'
'Private Sub zPatchVal(ByVal nAddr As Long, ByVal nOffset As Long, ByVal nValue As Long)
''Patch the machine code buffer at the indicated offset with the passed value
'   Call RtlMoveMemory(ByVal nAddr + nOffset, nValue, 4)
'End Sub
Code:
Es sieht so aus als würde ein Zeiger auf die aktuelle Instanz deiner Klasse in das Array sc_aBuf(), dessen Datentyp ich nicht kenne der aber vermutlich Long[4 byte] je Element ist, an die in PATCH_0A angegebene Byteposition kopiert wird.
Wie ich das nun in Delphi vernünfig umsetzen kann ?
Kein Ahnung..

gruß
  Mit Zitat antworten Zitat