Einzelnen Beitrag anzeigen

schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#5

Re: Dynamische DLL Funktion bringt nur Fehler

  Alt 14. Okt 2008, 08:46
thx @sx2008
Hab es nun so verwendet und es funktioniert einwandfrei!

Noch eine Frage zu dem DLL-Loading

Ich lade nun externe Plugins mit LoadLibrary von einem Unterordner z.B. C:\Programme\Meine Soft\Plugins\ExternalPlugins

Da die Plugins Ursprünglich für eine andere App geschrieben wurden kann es sein das diese Plugins DLLs von dieser App brauchen. Auch sind sie manchmal so Programiert das sie einfach einen Ordner zurückgehen um dann nach diesen DLLs zu suchen.

Somit müssen diese externen Plugins dann in z.B. C:\Programme\Original App\Plugins ausgeführt werden.

Kann ich also zuerst die Plugins die diese App-DLLs nicht brauchen in meinem Ordner C:\Programme\Meine Soft\Plugins\ExternalPlugins mit LoadLibrary laden.

Um die Plugins in dem C:\Programme\Original App\Plugins Ordner starten zu können muss ich da SetDllDirectory verwenden??
Oder geht das nicht da sich auch dann der Ordner der vorher geladenen DLLs ändert.

Sozusagen so der Ablauf:

SetDllDirectory C:\Programme\Meine Soft\Plugins\ExternalPlugins
LoadLibrary DLL1 in C:\Programme\Meine Soft\Plugins\ExternalPlugins
LoadLibrary DLL2 in C:\Programme\Meine Soft\Plugins\ExternalPlugins
SetDllDirectory C:\Programme\Original App\Plugins
LoadLibrary DLL3 in C:\Programme\Original App\Plugins

Kann das gehen?
Wenn ja wie binde ich SetDllDirectory in meine Unit ein? Gibt es ein Beispiel dazu?
Muss ich da die Kernel32.dll laden und dann die SetDllDirectory Function definieren?

Vielen Dank für Hilfe!
  Mit Zitat antworten Zitat