Mam zarządzany zestaw C++, który ładuję dynamicznie w niezarządzanej aplikacji C++ za pośrednictwem standardowego wywołania LoadLibrary(). Zarządzany zestaw w C++ ma zależności od kilku zarządzanych (C#) zespołów. Wszystko działało dobrze, dopóki nie przeniosłem wszystkich zarządzanych zestawów do podkatalogu aplikacji niezmienionej. Dla ilustracjiŁadowanie trybu mieszanego C++/CLI .dll (i zależności) dynamicznie z niezarządzanego C++
zarządzane C++ DLL (MyCoolDll.dll)
- zależności od DotNetDll1.dll
- zależności od DotNetDll2.dll
Niezarządzane C++ app (MyCoolApp .exe)
- Ładunki MyCoolDll.dll poprzez LoadLibrary ("MyCoolDll.dll")
ten działa dobrze, aż przeniesiono MyCoolDll.dll, DotNetDll1.dll & DotNetDll2.dll do/someSubDirectory (kod w MyCoolApp. exe został zaktualizowany do LoadLibrary ("someSubDirectory/MyCooldll.dll")
Zgaduję, gdy załadowany jest MyCoolDll.dll, próbuje znaleźć DotNetDll1.dll i DotNetDll2.dll w katalogu roboczym, zamiast katalogu to mieszka w.
Jak mogę powiedzieć MyCoolDll.dll jego zależności żyć w subdir Ektoria? Jest to biblioteka działająca wewnątrz niezarządzanej aplikacji, więc nie sądzę, że mogę to określić w app.config czy cokolwiek innego?
Wow, Hans, to zadziałało! Byłem bardzo wątpliwy, ponieważ MyCoolApp.exe jest po prostu zwykłą starą aplikacją Win32 (nie .NET), więc pomyślałem, że dodanie pliku konfiguracyjnego aplikacji nie pomoże. Dzięki! Czy chcesz napisać to jako odpowiedź zamiast komentarza, a ja oznaczę to jako zaakceptowane? – Jordan0Day