Ich bin neu in den „hidden/dark places“ von C++ und ich frage mich, wie eine DLL-Datei aus einem anderen Verzeichnis laden oder ein Unterverzeichnis innerhalb des einen, wo meine aktuelle ausführbare Datei istC++ DLL aus einem Unterverzeichnis laden?
Ex läuft :
./MyAppDirectory
/MyApp.exe
/SomeDLL.dll
/AnotherDLL.dll
/SubDirectory
/SomeDLL2.dll
/AnotherDLL2.dll
/YetAnotherDLL.dll
/...
So „MyApp.exe“ lädt automatisch „SomeDLL.dll“ und „AnotherDLL.dll“ von ihrem Stammordner „MyAppDirectory“ ist aber ich möchte in die Lage, auch „SomeDLL2.dll“ zu laden ", AnotherDLL2.dll "," YetAnotherDLL.dll "usw. aus dem Ordner" SubDirectory "im Ordner" MyAppDirectory ".
Ich habe einige Recherchen getan und von dem, was ich die einzigen Lösungen gefunden haben:
- 1) das Arbeitsverzeichnis der ausführbaren Datei ändern.
- 2) Legen Sie die DLL-Dateien in das Windows-Stammverzeichnis.
- 3) Ändern Sie die Umgebungsvariable PATH.
Aber alle von ihnen haben einige schlechte Seiten (nicht erwähnenswert hier) und es ist nicht das, was ich wirklich brauche. Auch eine andere Lösung ist durch "Application Specific Paths!" Das beinhaltet die Arbeit mit der Windows-Registrierung und scheint etwas besser als die zuvor genannten zu sein.
Allerdings muss ich in der Lage sein, dies in "MyApp.exe" mit C++ ohne die Notwendigkeit, externe Methoden zu verwenden.
Ich benutze MinGW 4.7.2 und meine IDE ist Code :: Blocks 12.11 auch mein Betriebssystem ist Windows XP SP3 Pro x86.
Jede Referenz, Tutorial, Dokumentation, Beispiel usw. akzeptiert und danken Ihnen für Ihre Zeit: D
Alle drei Ihrer aufgeführten Liste sind schlechte Ideen. Tu nichts davon. –
mögliches Duplikat von [Ändernder DLL-Suchpfad für statisch verknüpfte DLL] (http://stackoverflow.com/questions/3832290/altering-dll-search-path-for-static-linked-dll) – MSalters