Du hast mich ein wenig falsch verstanden.
Dass das gleichzeitige Benutzen einer
DLL durch mehrere Programme eine Schutzverletzung zur Folge haben soll ist mir neu. Wieso sollte das so sein?
Dass die Application-Variable innerhalb der
DLL eine andere ist als innerhalb der Applikation hatte ich vermutet (die meisten meiner Fragen waren eher rethorischer Natur). Deswegen ja auch mein Vorschlag:
Delphi-Quellcode:
// In der DLL:
procedure CreateFenster(
const AnAplication: TApplication);
begin
AnApplication.CreateForm (TFenster2, Fenster2);
AnApplication.CreateForm (TFenster3, Fenster3);
end;
// Dann Aufruf aus dem Hauptprogramm:
CreateFenster (Application);
Das ist untested, aber ich erhoffe mir davon, dass es das Problem löst, da die beiden Fenster von der Anwendung erzeugt werden, die auch tatsächlich gerade den Fokus hat, und nicht von der
DLL selbst.