Мой код использует LoadLibraryA («someDLL.dll»); По какому пути он начинает поиск файла someDLL.dll? И еще вопрос: чувствительна ли функция LoadLibraryA к регистру? Я имею в виду, что если у меня есть SomeDLL.dll, он не будет загружаться?
Статья библиотеки MSDN Порядок поиска в библиотеке динамических ссылок указывает порядок поиска для настольных приложений, когда SafeDllSearchMode включен, который по умолчанию начинается с Windows XP SP2:
- Каталог, из которого загружено приложение.
- Системный каталог. Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу.
- 16-битный системный каталог. Не существует функции, которая получает путь к этому каталогу, но она ищется.
- Каталог Windows. Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу.
- Текущий каталог.
- Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что сюда не входит путь для каждого приложения, указанный в разделе реестра «Пути к приложениям». Ключ App Paths не используется при вычислении пути поиска DLL.
LoadlLibrary
В статье указывается порядок поиска в комментариях:
Если lpFileName не включает путь и существует более одного
загруженный модуль с таким же базовым именем и расширением, функция
возвращает дескриптор модуля, который был загружен первым.Если в параметре lpFileName не указано расширение имени файла,
добавлено расширение библиотеки по умолчанию .dll. Тем не менее, имя файла
Строка может включать символ задней точки (.), чтобы указать, что
Имя модуля не имеет расширения. Когда путь не указан, функция
ищет загруженные модули, базовое имя которых совпадает с базовым именем
модуль для загрузки. Если имя совпадает, загрузка успешна.
В противном случае функция ищет файл. […]Для получения дополнительной информации о порядке поиска DLL см. Dynamic-Link Library
Поиск заказа.
Имена файлов не чувствительны к регистру, поэтому имена файлов NTFS и FAT. Это фундаментальное правило не предполагать чувствительность к регистру:
Соглашения об именах
Следующие фундаментальные правила позволяют приложениям создавать и обрабатывать допустимые имена для файлов и каталогов, независимо от файловой системы: […]
Не предполагайте чувствительность к регистру.