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!