Jestem nowy w "ukrytych/ciemnych miejscach" C++ i zastanawiałem się, jak załadować plik .dll z innego katalogu lub podkatalogu wewnątrz tego, w którym działa mój bieżący plik wykonywalnyC++ Załaduj bibliotekę DLL z podkatalogu?
Ex :
./MyAppDirectory
/MyApp.exe
/SomeDLL.dll
/AnotherDLL.dll
/SubDirectory
/SomeDLL2.dll
/AnotherDLL2.dll
/YetAnotherDLL.dll
/...
So "MojaAplik.exe" automatycznie wczytuje "SomeDLL.dll" i "AnotherDLL.dll" ze jest to folder główny "MyAppDirectory", jednak ja też chce być w stanie załadować "SomeDLL2.dll", " AnotherDLL2.dll "," YetAnotherDLL.dll "itp. Z folderu" SubDirectory "w folderze" MyAppDirectory ".
Robiłem kilka wyszukiwań iz tego co znalazłem to jedyne rozwiązania to:
- 1) Zmienić katalog roboczy wykonywalnego.
- 2) Umieść pliki DLL wewnątrz katalogu głównego systemu Windows.
- 3) Zmodyfikuj zmienną środowiskową PATH.
Ale wszystkie mają pewne złe strony (nie warto tu wspomnieć) i to nie jest to, czego naprawdę potrzebuję. Kolejnym rozwiązaniem jest "Ścieżki specyficzne dla aplikacji!" co wymaga pracy z rejestrem Windows i wydaje się być nieco lepsze niż te wymienione wcześniej.
Muszę jednak móc to zrobić w "MyApp.exe" używając C++ bez potrzeby korzystania z zewnętrznych metod.
Używam MinGW 4.7.2, a moim IDE jest Code :: Blocks 12.11 również mój system operacyjny to Windows XP SP3 Pro x86.
Wszelkie odniesienia, poradnik, dokumentacja, przykład itp jest akceptowana i dziękuję za poświęcony czas: D
Wszystkie trzy wyszczególnione listy są złymi pomysłami. Nie rób tego. –
możliwy duplikat [Altering DLL path wyszukiwania dla statycznie połączonych bibliotek DLL] (http://stackoverflow.com/questions/3832290/altering-dll-search-path-for-static-linked-dll) – MSalters