Использование одной DLL для нескольких проектов, требующих ее - PullRequest
0 голосов
/ 10 апреля 2020

Итак, в настоящее время у меня на компьютере много проектов, использующих одну и ту же библиотеку. Что меня беспокоит, так это то, что все они должны иметь одну и ту же DLL в своих папках. Конечно, мне не нужно копировать их вручную (мой компилятор выполняет всю работу за меня), но это не проблема. Проблема в том, что у меня ~ 25 копий одной и той же огромной DLL, лежащей вокруг.

Так что мне было интересно, смогу ли я определить переменную пути с помощью DLL или чего-то в этом роде, чтобы после выполнения программа может найти его в точной точке. Дело в том, что, поскольку я иногда передаю эти проекты другим, необходимо будет работать с библиотекой динамической ссылки c только внутри папки, а не где-либо еще. И, конечно, если есть приложение, которое я загружаю, используя ту же библиотеку, но другую версию, то, конечно, оно не должно устанавливать приоритет для библиотеки DLL, к которой я определил путь, а не для той, которая связана с ней.

Итак, в итоге Мне нужны мои программы, которые не могут найти DLL в своих папках, чтобы найти точный, предопределенный каталог, чтобы найти его.

Я не уверен, что это возможно. Любая помощь будет принята с благодарностью, и уже, спасибо, что прочитали это.

1 Ответ

1 голос
/ 11 апреля 2020

Для локальной разработки проще всего просто иметь копию DLL в вашей среде PATH. Самый простой способ, , хотя и не рекомендуется для клиентов , - просто скопировать DLL в вашу системную директорию . То есть скопируйте его в c:\windows\system32 или c:\windows\syswow64. Идеально подходит для целей разработки.

Или создайте пользовательскую папку, чтобы хранить копию этой DLL. Обновите Windows PATH через панель управления , чтобы он указывал на этот каталог с DLL.

Или используйте ключ реестра Paths приложения , чтобы изменить PATH для Speci c EXE.

Все эти решения имеют проблемы с версиями, которые могут или не могут быть проблемой для локальной разработки.

Для распространения кода среди клиентов, просто используйте EXE и Зависимые библиотеки DLL в той же папке - самый проверенный и верный метод.

Кроме того, прочитайте это: https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...