Hallo zusammen,
in einem einfachen Zeichenprogramm habe ich die Zeichenmethoden der einzelnen Objekte in eine DLL ausgelagert. Ich übergebe dabei der von der DLL exportierten Methode u.A. das TCanvas-Objekt meiner internen Bitmap, auf das gezeichnet werden soll.
Das funktioniert eigentlich ganz prima.
ABER:Sobald ich innerhalb der DLL eine Eigenschaft des TPen-Objekts meiner Canvas ändere (Pen.Color:=clYellow), tritt beim Verlassen der DLL-Methode eine Zugriffsverletzung auf.
Weil ich mir nicht anders zu helfen wusste, erzeuge ich nun innerhalb der Methode meines Zeichenobjekts, in der die DLL-Methode aufgerufen wird, eine lokale TPen-Instanz, die ich nicht wieder freigebe. Dann funktioniert alles.
Baue ich ein, dass diese TPen-Instanz freigegeben wird, kommt es zu denselben Problemen.
Warum kann ich auf das der DLL übergebene TCanvas-Objekt zugreifen, nicht jedoch auf das zugehörige TPen-Objekt.
Weiß jemand Rat?
Viele Grüße,
Axel
in einem einfachen Zeichenprogramm habe ich die Zeichenmethoden der einzelnen Objekte in eine DLL ausgelagert. Ich übergebe dabei der von der DLL exportierten Methode u.A. das TCanvas-Objekt meiner internen Bitmap, auf das gezeichnet werden soll.
Das funktioniert eigentlich ganz prima.
ABER:Sobald ich innerhalb der DLL eine Eigenschaft des TPen-Objekts meiner Canvas ändere (Pen.Color:=clYellow), tritt beim Verlassen der DLL-Methode eine Zugriffsverletzung auf.
Weil ich mir nicht anders zu helfen wusste, erzeuge ich nun innerhalb der Methode meines Zeichenobjekts, in der die DLL-Methode aufgerufen wird, eine lokale TPen-Instanz, die ich nicht wieder freigebe. Dann funktioniert alles.
Baue ich ein, dass diese TPen-Instanz freigegeben wird, kommt es zu denselben Problemen.
Warum kann ich auf das der DLL übergebene TCanvas-Objekt zugreifen, nicht jedoch auf das zugehörige TPen-Objekt.
Weiß jemand Rat?
Viele Grüße,
Axel
Comment