Thema: Virtual Piano

Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#280

AW: Virtual Piano

  Alt 18. Jun 2011, 22: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 22:50 Uhr)
  Mit Zitat antworten Zitat