Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
FreePascal / Lazarus
|
AW: Virtual Piano
18. Jun 2011, 23:37
Moment mal – deine WndProc ist eine Methode eines Objekts? Woher soll denn dann der implizite Parameter self
kommen, wenn die WndProc von Windows aufgerufen wird? Das könnte durchaus der Grund für den Crash sein.
Änder doch mal die Deklaration in class procedure TSkinListBox.ClientWndProc(var Message: TMessage); static;
. Das ist dann quasi wie eine „normale“ Procedure, nur in einer Klasse deklariert.
edit: Okay, sorry, kannte MakeObjectInstance
nicht. Gerade nachgelesen, was das ist – damit sollte es wohl doch in Ordnung sein.
edit 2: Allerdings könnte es sein, dass diese Methode mit der Datenausführungsverhinderung DEP (die ich aktiviert habe) in Konflikt gerät. Denn anscheinend wird dabei Code on-the-fly generiert/alloziiert, allerdings konnte ich nirgends sehen, dass für den Speicherbereich das PAGE_EXECUTE
-Flag gesetzt würde. Vielleicht könntest du es ja doch mal so probieren, wie ich oben vorgeschlagen habe?
Geändert von Namenloser (18. Jun 2011 um 23:50 Uhr)
|