Zitat von
Lossy eX:
Wäre es da nicht evtl. einfacher die
DLL so zu strukturieren, dass der gleichzeitige Zugriff aus einer Anwendung funktioniert? Also keine globalen Variablen innerhalb der
DLL verwenden und damit ist meistens schon ein Großteil getan.
Typischerweise kann man so etwas dann so lösen, dass die Objekte als Parameter übergeben werden. Entweder per ID oder sogar direkt den Pointer.
Die einzige globale Variable in der
DLL ist diese eine Klasse. Die kann ich aber nicht vermeiden, da die verschiedenen Funktionen darauf zurückgreifen. Ich müßte dann jedesmal in der Funktion die Klasse erstellen.
Per Pointer geht nicht, da der Benutzer ja von ausserhalb mit der Klasse arbeiten muss. Ergo muß der Compiler sie kennen und da sind wir wieder beim Problem.
Ich versuche das jetzt per ID umzusetzen, indem ich in der
DLL eine TObjectList habe, die die Instanzen der Klasse mitschleppt und vor jedem Zugriff auf die Funktionen, die Klasse ausserhalb durch ihre ID die richtige Instanz setzt.