Я пытаюсь использовать OpenCV (библиотеку видения компьютера), которая, как представляется, использует несколько DLL-файлов, расположенных в C:\OpenCV\bin
(который был добавлен в переменную PATH
). Однако, если я пытаюсь запустить простую тестовую программу, она дает системную ошибку:Почему моя программа на C++ не находит нужный файл .dll?
The program can't start because highgui.dll is missing from your computer. Try reinstalling the program to fix this problem.
Если я скопировать файл highgui.dll
в папку system32
, она работает, но я не хочу, чтобы поставить все необходимые DLL-файлы в папке system32
.
Кто-нибудь знает, почему .dll-файл не найден или что я должен сделать, чтобы исправить его?
(Я уже проверял все пути в переменной PATH
.)
вопрос, связанный с семьей: http://stackoverflow.com/questions/2637499/how-can-a-win32-app-plugin-load-its-dll-in-its-own-directory/ –
Добро пожаловать в DLL ад. Вам не только нужно выяснить, где находится DLL, но вам нужно будет выяснить, какая из них - * правильная * версия для использования. По этой причине многие приложения размещают библиотеки DLL в том же каталоге, что и исполняемый файл. Я предлагаю вам использовать явные пути для ваших DLL, а не полагаться на системный путь (что может привести к неправильной версии DLL). –
Я не думаю, что могу редактировать пути к DLL, поскольку они, вероятно, указаны в библиотеке OpenCV. – RemiX