Почему полный путь к файлу не требуется для загрузки DLL?В какой ситуации эта функциональность будет полезна? - PullRequest
2 голосов
/ 21 апреля 2011

Почему Windows не требует полного пути к файлу при вызове LoadLibrary или для CLSID с зарегистрированными DLL и т. Д. В какой ситуации кто-то выиграет от необходимости прибегнуть к порядку поиска DLL для поиска DLL?

Я имею в виду, что такие переменные, как% SystemRoot% или% ProgramFiles%, могут привести вас к соответствующей папке, а. \ Оставит вас в вашем текущем каталоге. Так зачем разрешать неопределенность?

1 Ответ

0 голосов
/ 24 апреля 2011

Для явного связывания с GetProcAddress() я бы сказал, что следует использовать абсолютный путь к DLL, если это вообще возможно.

Для неявного связывания с файлами .lib необходимо указать имя библиотеки DLL во время соединения, что исключает абсолютные пути.

Безопаснее всего поместить DLL в тот же каталог, что и исполняемый файл, в папке% Program Files% и защищен UAC, и использовать новый порядок поиска DLL.

...