Динамическая загрузка C ++ / CLI .dll смешанного режима (и зависимостей) из неуправляемого C ++

У меня есть управляемая сборка C ++, которую я загружаю динамически в неуправляемом приложении C ++ с помощью стандартного вызова LoadLibrary (). Управляемая сборка C ++ зависит от еще нескольких управляемых сборок (C #). Все работало нормально, пока я не переместил все управляемые сборки в подкаталог неуправляемого приложения. Для иллюстрации:

  • Управляемая библиотека C ++ .dll (MyCoolDll.dll)

    • Зависит от DotNetDll1.dll
    • Зависит от DotNetDll2.dll
  • Неуправляемое приложение C ++ (MyCoolApp.exe)

    • Загружает MyCoolDll.dll через LoadLibrary ("MyCoolDll.dll")

Это работало нормально, пока я не переместил MyCoolDll.dll, DotNetDll1.dll и DotNetDll2.dll в / someSubDirectory (код в MyCoolApp.exe был обновлен до LoadLibrary ("someSubDirectory / MyCooldll.dll ")

Я предполагаю, что когда загружен MyCoolDll.dll, он пытается найти DotNetDll1.dll и DotNetDll2.dll в рабочем каталоге, а не в каталоге, в котором он находится.

Как я могу сказать MyCoolDll.dll его зависимости находятся в подкаталоге? Это библиотека, работающая внутри неуправляемого приложения, поэтому я не думаю, что могу указать это в app.config или в чем-то еще?

5
задан Jordan0Day 10 August 2011 в 19:33
поделиться