AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objekt in einem Package modifizieren

Ein Thema von cytrinox · begonnen am 7. Sep 2006
Antwort Antwort
cytrinox

Registriert seit: 4. Sep 2006
88 Beiträge
 
#1

Objekt in einem Package modifizieren

  Alt 7. Sep 2006, 14:23
Hi,

ich bastle gerade mit ein paar Delphi Packages rum.

Im Moment hab ich ein Programm und 2 Packages. In Package1 ist eine abstract class enthalten die von einer Unit
im Programm implementiert wird. Das Programm erstellt auch ein Objekt dieser abgeleiteten Klasse.

Das Package2 lade ich dynamisch über LoadPackage() in das Programm. Das ganze Package2 besteht aus nur einer prozedur
die eine Referenz auf die in Package1 deklarierte abstract class erwartet.

Nachdem ich die package2.bpl im Programm geladen habe greife ich über die exportierte prozedur darauf zu und übergebe
dabei self, da das package2 innerhalb einer procedure von der abgeleiteten klasse geladen wird.

In der prozedur (im package2) kann ich jetzt beliebig an dem objekt rummachen, variablen auslesen usw.
Wenn ich aber eine Variable setze oder generell schreibend darauf zugreife, funktioniert das zwar, wenn ich dann aber
wieder zum Programm zurückkehre und dort ebenfalls schreibend auf self zugreife gibts ne Access Violation.

In Programmcode ausgedrückt:
Delphi-Quellcode:
...
p := GetProcAddress(alib,PChar('LoadLib'));
@AMethod := p;
Method(self); // hier wird dann z.B. self.name := 'foobar'; ausgeführt
self.name := 'wasanders'; // Access Violation
...
Wenn ich anstatt den namen zu setzen einfach nur den namen ausgeben lasse (im package) kann ich hinterher noch schreibend zugreifen.
nur wenn das Package self verändert kracht es...

Gibts da irgendwelche internen locks die den schreibenden Zugriff verbieten nachdem das Package daran rumgefummelt hat?
Langsam gehen mir die Ideen aus an was das liegen könnte
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz