Как найти dll и exe программы

← →
Borealis ( 2003-08-13 14:33 ) [0]

В каком порядке производится поиск нужной приложению dll?
Сначала в каталоге с exe, потом в системных виндовса, а потом в переменных path. Вроде я сам ответил на свой вопрос, но на самом деле это не полный ответ. Из этого ответа не понятно как получить путь к dll которая реально будет загружена.
Или может есть какая функция для этого? (но я её не нашёл)

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

← →
Skier ( 2003-08-13 14:41 ) [1]

Цель-то конечная какая ?

← →
Dimka Maslov ( 2003-08-13 14:47 ) [2]

Используй функции LoadLibrary и GetProcAddress, а не статическую компоновку.

← →
Reindeer Moss Eater ( 2003-08-13 14:55 ) [3]

LoadLibrary тоже может не дать прямого ответа на вопрос какая библиотека загрузилась.

← →
clickmaker ( 2003-08-13 15:07 ) [4]

А GetModuleFileName на что?

Как скачать DLL, EXE, SYS и другие файлы для Windows 11/10

← →
AlexKniga ( 2003-08-13 15:11 ) [5]

Где ищутся DLL?
Ответ для 9х:
1) Каталог откуда запустился exe»шник
2) Текущий каталог
3) System32
4) System
5) Windows
6) %PATH%

Если в реестре для данной библиотеке прописан специальный путь поиска, то используется он.

Если в памяти уже есть библиотека с таким же именем, то используется она.

← →
Reindeer Moss Eater ( 2003-08-13 15:12 ) [6]

Если в реестре для данной библиотеке прописан специальный путь поиска, то используется он.

Я провёл маленький эксперимент — написал приложение которое требует dll которого не существует, и изменил переменные окружения «path» следующим образом: пользовательский «path»: «c:apath», а системный «path»: «d:apath». После запуска этого приложения естественно появляется сообщение об ощибке такого содержания:

TestPath.exe — Unable To Locate DLL
The dynamic link library kernel34.dll could not be found in the specified path E:ProgramsDelphi6ProjectsTestpath;.;E:WINNTSystem32;E:WINNTsy stem;E:WINNT;E:ProgramsFar1705;d:apath;c:apath.

Т.е. сначала ищет в текущем каталоге (потом в какойто точке[?] какая разница между текущим каталогом и точкой я не понял), потом в системных папках, потом в системной «path» и наконец в пользовательском «path».
И тут возникает сразу два вопроса:
1. Откуда берётся информация о расположении системных каталогов (ведь под другой версией винды они могут быть и другими).
2. Что это за странную информацию мне возвращает функция GetEnvironmentVariable : E:ProgramsDelphi5Bin;d:apath;c:apath?

Но это всё относится к «ручному» способу, а вот может есть какая стандартная функция?

Читайте также:
Программа чтобы колонки играли

← →
AlexKniga ( 2003-08-13 15:45 ) [11]

Borealis (13.08.03 15:36) [10]> пользовательский «path»: «c:apath», а системный «path»: «d:apath»

Как скачать opencl.dll и исправить ошибки при запуске игр и программ


.

← →
Reindeer Moss Eater ( 2003-08-13 15:51 ) [12]

1. Откуда берётся информация о расположении системных каталогов (ведь под другой версией винды они могут быть и другими).

Но это уже сильное отклонение от моего первоначального вопроса, наверно мой вопрос неправильно поняли поэтому я его немного перефразирую:
Если удалить нужные приложению dll»ки, то при его запуске появится сообщение которое я приводил выше, т.е. что я dll искал-искал по таким путям: «E:ProgramsDelphi6ProjectsTestpath;.;E:WINNTSystem32;E:WINNTs ystem;E:WINNT;E:ProgramsFar1705;d:apath;c:apath» но не нашёл.
Вопрос: как узнать вышеприведённую строку «поиска» (т.е. по каким путям приложение искало — точнее по каким искало бы). Фух. Ну проще я уже наверно не смогу объяснить свою проблему 🙁

← →
Reindeer Moss Eater ( 2003-08-13 16:27 ) [15]

т.е. по каким путям приложение искало — точнее по каким искало бы.

ps. Вы извините если я немного резко отвечаю, просто я немного нервничаю (скоро уже нужно показывать результат) и разговаривать на отвлечённые темы меня не тянет. 🙁

← →
Reindeer Moss Eater ( 2003-08-13 17:31 ) [21]

Теперь моё приложение должно найти все эти *.bpl и собрать в один каталог.

> 3. Посмотри в реестр на предмет каталогов поиска, зарегистрированных
> для того приложения.
?

> 4. Ищи в том же порядке, что и Windows
» том же порядке, что и Windows» Вот именно этого я и пытаюсь добиться. 🙁

← →
Reindeer Moss Eater ( 2003-08-13 17:48 ) [23]

Т.е. однозначного ответа не существует?
Существует

«том же порядке, что и Windows» Вот именно этого я и пытаюсь добиться. 🙁

То, чего ты добиваешься, находится в ЛЮБОЙ книжке по Delphi, в которой есть описание работы с DLL.
Там описана последовательность перебора системой каталогов прии загрузке бибиотек.

Я только что заметил что функция GetEnvironmentVariable возвращает «E:ProgramsDelphi5Bin;d:apath;c:apath», а path в командной строке: «E:ProgramsFar1705;d:apath;c:apath». Почему они так отличаются?

Вот буквально только что нашёл в инете такую ссылку: http://www.listsoft.ru/tips/456/

-=begin=-
Эта настройка может пригодиться, чтобы заставить программу, запускаемую по сети использовать локальные dll-ки, а также в тех случаях, когда первой загружается неправильная версия dll.
Запустите regedit и найдите ветвь
HKLMSYSTEMCurrentControlSetControlSession Manager

Создайте новый DWORD ключ с именем «SafeDllSearchMode» (или измените существующий) и установите его значение в 1, если вы хотите заставить Windows сначала искать библиотеки в System и Windows папках, или в 0, если вы хотите, чтобы сначала проверялась текущая директория.

Для того, чтобы настройка заработала понадобится перезагрузить компьютер.
-=end=-

Читайте также:
Программы оптического распознавания это

Т.е. ответ, что однозначный ответ сеществует тоже считается недействительным?

> Я только что заметил что функция GetEnvironmentVariable
> возвращает «E:ProgramsDelphi5Bin;d:apath;c:apath»,
> а path в командной строке: «E:ProgramsFar1705;d:apath;c:apath».
> Почему они так отличаются?
>
> в командной строке FAR»A?
Понятно, этот вопрос снимается.

← →
Reindeer Moss Eater ( 2003-08-14 09:03 ) [28]

Т.е. ответ, что однозначный ответ сеществует тоже считается недействительным?

Ответ считается действительным. И ответ этот однозначный.

Источник: delphimaster.net

Просмотр библиотек DLL и исполняемых файлов в окне «Модули» (C#, C++, Visual Basic, F#)

Область применения:yesVisual StudionoVisual Studio для Mac noVisual Studio Code

В процессе отладки в Visual Studio окно Модули отображает список используемых приложением библиотек DLL и исполняемых файлов ( .exe), а также сведения о них.

Окно «Модули» недоступно при отладке SQL и скриптов.

Использование окна модулей

Чтобы открыть окно «Модули» во время отладки, выберите Отладка>Окна>Модули или нажмите клавиши CTRL+ALT+U.

По умолчанию модули в окне Модули упорядочены в порядке загрузки. Чтобы выполнить сортировку по любому столбцу окна, щелкните заголовок соответствующего столбца.

Загрузить символы

В столбце Состояние символов в окне Модули показано, для каких модулей загружены отладочные символы. Если здесь указано состояние Загрузка символов пропущена, Невозможно найти или открыть PDB-файл или Загрузка отключена параметром включения и исключения, вы можете загрузить символы вручную. Дополнительные сведения о загрузке и использовании символов см. в статье Указание файлов символов (.pdb) и исходных файлов.

Загрузка символов вручную

  1. В окне Модули щелкните правой кнопкой модуль, для которого не загружены символы.
    • Выберите Сведения о загрузке символов, чтобы узнать, почему символы не были загружены.
    • Щелкните Загрузить символы, чтобы загрузить символы вручную.
    • Если символы не загружаются, выберите Параметры символов, чтобы открыть диалоговое окно Параметры и указать или изменить расположение для загрузки символов. Вы можете скачать символы с общедоступных серверов символов Майкрософт или других аналогичных серверов, а также загрузить их из локальной папки на компьютере. Дополнительные сведения см. в разделе Настройка расположения файлов символов и поведения при загрузке.

    Изменение параметров поведения при загрузке символов

    1. В окне Модули щелкните правой кнопкой мыши любой модуль.
    2. Выберите Параметры символов.
    3. Выберите Загрузить все символы или выберите конкретные модули.
    4. Нажмите кнопку ОК. Изменения вступят в силу при следующем сеансе отладки.

    Изменение поведения загрузки символов для конкретного модуля

    1. В окне Модули щелкните правой кнопкой мыши требуемый модуль.
    2. В контекстном меню установите или снимите флажок Всегда загружать автоматически. Изменения вступят в силу при следующем сеансе отладки.

    См. также

    • Прерывание выполнения
    • Просмотр данных в отладчике
    • Указание файлов символов (PDB) и файлов с исходным кодом
    Читайте также:
    Интересные программы для общения

    Источник: learn.microsoft.com

    Как скачать файлы DLL, EXE и SYS Windows 10 разных версий

    Загрузка оригинальных файлов Windows 10 в Winbindex

    Чаще всего, если пользователь сталкивается с тем, что какие-то файлы DLL или другие отсутствуют в Windows 10, из-за чего не запускаются игры или программы, это означает, что не установлены необходимые компоненты, содержащие эти файлы и правильное решение — установить их вручную, о чем на remontka.pro есть несколько десятков статей (если вам требуется какой-то конкретный файл, можете ввести его имя в поиске на сайте: возможно, я уже описал ситуацию применительно к этому конкретному файлу).

    Однако, случается так, что какой-то необходимый файл Windows 10, имеющийся в системе по умолчанию, был удален или поврежден, встроенное восстановление системных файлов не работает и требуется где-то скачать такой файл. Это можно сделать с помощью нового сервиса Winbindex (Windows Binaries Index), о котором и пойдет речь далее в статье.

    Возможности загрузки оригинальных файлов Windows 10 в Winbindex

    Сайт Winbindex представляет собой базу данных по всем системным (встроенным) файлам Windows 10 разных версий и позволяет получить подробную информацию об этих файлах, а файлы DLL, EXE и SYS можно скачать напрямую с сайта Майкрософт.

    Порядок действий в Windows Binaries Index выглядит следующим образом:

    1. Зайдите на официальный сайт Winbindex https://m417z.com/winbindex/
    2. Введите имя нужного вам файла. Загрузка доступна только для DLL, EXE и SYS файлов. Просмотреть информацию можно и для других типов файлов. Главная страница Winbindex
    3. После этого откроется список файлов с этим именем для Windows 10 — их может быть разное количество для разных версий и разрядности Windows 10 (x64 и x86, что означает 32-бит). Из доступной информации о файлах — контрольная сумма SHA256, версия и размер. Если файл доступен для Windows 10 не самой последней версии, причина может быть в том, что он не обновлялся в новых версиях Windows 10. Скачивание файлов Windows 10 в Winbindex
    4. Для DLL, EXE и SYS есть возможность скачать файл, используя кнопку Download. Загрузка происходит напрямую с серверов Майкрософт (можно в этом убедиться, скопировав ссылку, на которую ведет кнопка). Если файл скачивается не с тем расширением и именем, что нужно, просто укажите нужное имя файла и расширение (в результате будет именно рабочая библиотека или исполняемый файл).

    Как видите, всё очень просто и сервис позволяет быстро загрузить оригинальные файлы Windows 10 если по какой-либо причине они были утрачены.

    Обратите внимание, если нажать по кнопке «Show» в предпоследнем столбце, вы сможете получить дополнительную информацию о файле. В частности, вас может заинтересовать пункт «Language» (язык) в разделе «WindowsVersions». Если там указано «neutral», этот файл можно без проблем использовать и в русскоязычной версии Windows 10.

    Источник: remontka.pro

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru