LoadLibrary во время выполнения получает код ошибки 126 при использовании внешней библиотеки Dynami c - PullRequest
0 голосов
/ 11 февраля 2020

Итак, у меня есть пример кода (все на с ++), который я смог скомпилировать в dll с помощью Visual Studio 2019 (все скомпилировано в 64-битной). У меня есть тестовый код, который загружает скомпилированные DLL во время выполнения. Однако, как только я обращаюсь к другой библиотеке (в данном случае opencv), я получаю сообщение об ошибке на загрузочном модуле (126, я полагаю, это означает, что он не может найти файл dll или что-то еще).

То, что я пробовал до сих пор:

  1. Добавление пути к библиотеке и пути включения и всех библиотек из opencv в мою библиотеку DLL не вызывает никаких ошибок. но как только я добавляю "#include" opencv2 / opencv.hpp "" я получаю 126 (dll все еще прекрасно работает).

  2. Я добавил ту же динамическую c связь с модуль загрузки (уже статически связанный с той же библиотекой), все еще без кубиков.

Обновление : После проверки с помощью монитора процесса я обнаружил, что модуль OpenCV не может быть найдено, что довольно странно, так как я указал расположение в каталоге Дополнительная библиотека и каталог включения (я использовал каталог в каталоге vcpkg / installer). Монитор процесса показывает, что из всех мест, где модуль загрузки искал opencv dll, не просматривалось только местоположение vcpkg.

process monitor output

update2: Я удалил весь компоновщик для opencv dll, и проблема не появилась на мониторе процесса, однако, я все еще получаю код 126.

update3: Сделал быстрый поиск файлов, даже не было файлов DLL для начала. Скачал необходимые dll и оставил их в папке root моего загрузочного модуля, проблема решена. Я хочу три часа назад.

1 Ответ

0 голосов
/ 11 февраля 2020

Сделал быстрый поиск файлов, даже не было файлов dll для начала. Скачал необходимые dll и оставил их в папке root моего загрузочного модуля, проблема решена. Я хочу три часа назад.

...