DLL
с очень осторожны в обращении. Как вы упомянули в своем комментарии, вы должны разместить его рядом с исполняемым файлом.
Windows ищет в нескольких местах ваши DLL
s. В системных папках и т. Д. И в папке, где находится ваш исполняемый файл. Для переносимости в другие системы и во избежание того, что Windows использует неправильный DLL
, вы должны поместить его рядом с исполняемым файлом.
This LINK заявляет:
Стандартный порядок поиска DLL, используемый системой, зависит от того, включен или отключен безопасный режим поиска DLL. Безопасный режим поиска DLL размещает текущий каталог пользователя позже в порядке поиска.
...
Если SafeDllSearchMode включен, порядок поиска следующий:
- Каталог, из которого загружено приложение.
2. Системный каталог. Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу.
- 16-битный системный каталог. Не существует функции, которая получает путь к этому каталогу, но она ищется.
- Каталог Windows. Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу.
- Текущий каталог.
- Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что сюда не входит путь для каждого приложения, указанный в разделе реестра «Пути к приложениям». Ключ App Paths не используется при вычислении пути поиска DLL.
Если SafeDllSearchMode отключен, порядок поиска следующий:
- Каталог, из которого загружено приложение.
- Текущий каталог.
- Системный каталог. Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу.
- 16-битный системный каталог. Не существует функции, которая получает путь к этому каталогу, но она ищется.
Каталог Windows. Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу.
- Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что сюда не входит путь для каждого приложения, указанный в разделе реестра «Пути к приложениям». Ключ App Paths не используется при вычислении пути поиска DLL.
Если это возможно, вы должны определить ваш DLL
с абсолютным путем. Просто для полноты. Также по ссылке:
Система может содержать несколько версий одной и той же динамически подключаемой библиотеки (DLL). Приложения могут контролировать местоположение, из которого загружается DLL, указав полный путь или используя другой механизм, такой как манифест.
Как уже упоминалось в комментариях, вы должны также включить время выполнения MVS DLL
с.