У меня есть собственное приложение на C ++ (никаких модных вещей .Net, только C ++). Однако он использует некоторые дополнительные сборки .Net через dll-файлы оболочки смешанного режима. Эти библиотеки загружаются с задержкой загрузки. Проблема с обертками смешанного режима заключается в том, что им нужно полностью доверять для загрузки. Поэтому, когда приложение пытается использовать dll, если ее нет или если ей не доверяют, все происходит сбой с неприятным сообщением об ошибке.
Но в моем случае, если речь идет о моем основном приложении, оно может жить без этих файлов dll. Поэтому мне нужен способ проверить, могут ли быть загружены эти dll (файлы есть и доверяют). Для этого я попытался поместить фиктивный вызов одной из функций dll в блоке try catch, надеясь поймать исключение, но он все равно вылетает с исключением «модуль не найден».
мы также пытались заменить необработанный фильтр исключений на собственный, но все равно безуспешно.
мы также попытались использовать метод LoadLibrary, чтобы сначала загрузить dll и проверить возвращаемое значение. Но эта функция загружает Dll, даже если ей не доверяют, но дает сбой, когда мы пытаемся выполнить вызов метода.
Не думаю, что это нерешенная проблема. Насколько сложно проверить, можно ли использовать dll, не пытаясь загрузить ее, что приведет к сбою? Любые идеи?