Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

DLL mehrfach laden? Geht das irgendwie?

  Alt 13. Jan 2014, 08:20
Hallo zusammen.

ich verzweifel daran, wie eine DLL mehrfach geladen werden kann.
Ich lade ein Assembly (DLL) momentan so:
Code:
AssemblyName an = AssemblyName.GetAssemblyName(pluginFilePath);
Assembly assembly = Assembly.Load(an);
Ein Mehrfachaufruf bringt nichts, da .NET die Assembly nur einmal lädt, egal wie oft der obige Code aufgerufen wird.

Mit "AppDomain" habe ich herunbrobiert, aber damit kam ich nicht weiter.

Weiter geht's mit
Code:
plugin = (IPlugin_Device)Activator.CreateInstance(pluginType);
Ich möchte die DLL mehrfach laden bzw. mehrere Instanzen haben, damit diese unabhängig voneinander die Private-Variablen nutzen können und sich nicht gegenseitig überschreiben.
Wie macht man das?

Bzw. wie kann ich überprüfen, ob mit "CreateInstance" auch wirklich mehrere Instanzen erzeugt wurden?
Es sieht momentan so aus, als teilen sich meine Plugins einen Speicherbereich.

Edit: Argh, da tippsel ich hier und nun kam mir die Lösung. Es funktioniert alles wie oben genannt. Es war ein Synchrinisationsfehler innerhalb meines DLL-Codes.

Grüße
Matze

Geändert von Matze (13. Jan 2014 um 08:37 Uhr)
  Mit Zitat antworten Zitat