как узнать версию dll
Как я могу проверить DLL-файл Windows, чтобы определить, является ли он 32 бит или 64 бит? [дубликат]
этот вопрос уже есть ответ здесь:
Я хотел бы написать тестовый сценарий или программу, которая утверждает, что все DLL-файлы в данном каталоге имеют определенный тип сборки.
Я бы использовал это как проверку здравомыслия на конец процесса сборки на SDK, чтобы убедиться, что 64-разрядная версия каким-то образом не получила некоторые 32-разрядные DLL-файлы в нем и наоборот.
есть ли простой способ посмотреть на DLL-файл и определить его тип?
решение должно работать на xp32 и xp64.
5 ответов
подробности
DLL использует исполняемый формат PE, и не слишком сложно прочитать эту информацию из файла.
посмотреть этот статья MSDN о формате файла PE обзор. Вам нужно прочитать заголовок MS-DOS, а затем прочитать IMAGE_NT_HEADERS структура. Это содержит IMAGE_FILE_HEADER структура которая содержит информацию вам в члене машины который содержит одно из следующего значения
эта информация должна быть с фиксированным смещением в файле, но я все равно рекомендую обойти файл и проверить подпись заголовка MS-DOS и IMAGE_NT_HEADERS, чтобы убедиться, что вы справитесь с любыми будущими изменениями.
используйте ImageHelp для чтения заголовков.
вы можете также используйте API для ImageHelp для этого-загрузите DLL с LoadImage и LOADED_IMAGE структура, которая будет содержать указатель на структуру IMAGE_NT_HEADERS. Освободите LOADED_IMAGE с ImageUnload.
. или адаптировать этот грубый Perl скрипт
вот грубый скрипт Perl, который выполняет работу. Он проверяет, что файл имеет заголовок DOS, а затем считывает смещение PE из IMAGE_DOS_HEADER 60 байтов в файл.
затем он стремится к началу части PE, читает подпись и проверяет ее, а затем извлекает значение, которое нас интересует.
грубым способом было бы вызвать dumpbin с опцией headers из средств Visual Studio в каждой DLL и искать соответствующий вывод:
вы можете увидеть пару подсказок в этом выводе, что это 32-битная DLL, включая значение 14C, которое упоминает пол. Должно быть легко найти в сценарии.
Если у вас Cygwin установлен (который я настоятельно рекомендуем по разным причинам), вы можете использовать утилиту «файл» в DLL
который дал бы такой результат:
зависимость Walker рассказывает все (ну почти). http://www.dependencywalker.com/
насколько я помню, довольно просто увидеть все зависимости, т. е. модули dll, и начиная с appl. является суммой зависимостей, которые можно определить, является ли она полной x64, x32(x86) или немного каждой.
тип процессора, который модуль был построен для is в столбце «CPU». Большинство 64-разрядных aps все еще немного каждого, но 32-разрядный ap w/b все x86.
красивая программа для вундеркиндов / программистов, и это бесплатно.
просто запустите его и загрузите файл DLL:
в приведенном выше примере загруженная DLL является 32-разрядной.
Просмотр библиотек DLL и исполняемых файлов в окне «Модули» (C#, C++, Visual Basic, F#)
В процессе отладки в Visual Studio окно Модули отображает список используемых приложением библиотек DLL и исполняемых файлов ( .exe), а также сведения о них.
Окно «Модули» недоступно при отладке SQL и скриптов.
Использование окна модулей
Чтобы открыть окно «Модули» во время отладки, выберите Отладка > Окна > Модули или нажмите клавиши CTRL+ALT+U.
По умолчанию модули в окне Модули упорядочены в порядке загрузки. Чтобы выполнить сортировку по любому столбцу окна, щелкните заголовок соответствующего столбца.
Загрузить символы
В столбце Состояние символов в окне Модули показано, для каких модулей загружены отладочные символы. Если здесь указано состояние Загрузка символов пропущена, Невозможно найти или открыть PDB-файл или Загрузка отключена параметром включения и исключения, вы можете загрузить символы вручную. Дополнительные сведения о загрузке и использовании символов см. в статье Указание файлов символов (.pdb) и исходных файлов.
Загрузка символов вручную
В окне Модули щелкните правой кнопкой модуль, для которого не загружены символы.
Выберите Сведения о загрузке символов, чтобы узнать, почему символы не были загружены.
Щелкните Загрузить символы, чтобы загрузить символы вручную.
Если символы не загружаются, выберите Параметры символов, чтобы открыть диалоговое окно Параметры и указать или изменить расположение для загрузки символов.
Вы можете скачать символы с общедоступных серверов символов Майкрософт или других аналогичных серверов, а также загрузить их из локальной папки на компьютере. Дополнительные сведения см. в разделе об указании расположения символов и поведения при загрузке.
Изменение параметров поведения при загрузке символов
В окне Модули щелкните правой кнопкой мыши любой модуль.
Выберите Параметры символов.
Выберите Загрузить все символы или выберите конкретные модули.
Нажмите кнопку ОК. Изменения вступят в силу при следующем сеансе отладки.
Изменение поведения загрузки символов для конкретного модуля
В окне Модули щелкните правой кнопкой мыши требуемый модуль.
В контекстном меню установите или снимите флажок Всегда загружать автоматически. Изменения вступят в силу при следующем сеансе отладки.
Как посмотреть содержимое dll
Т.к. разработчики линивые люди и не любят писать инструкции, то приходится самим разбираться и искать то, чего они не написали.
Часто бывают случаи, когда есть dll, мы догадываемся, что она что-то умеет делать, но не знаем, какие у нее есть экспортные функции и какие нужно передавать туда входные параметры. Или еще хуже, когда есть инструкция, все делаем по ней, передаем нужное количество параметров, а она нам ругается, что либо не хватает параметров, либо тип не соответствует. Можно искать ответа у разработчиков, но это может затянуться на очень длительное время.
Идем в Exсel и открываем Visual Basic сочетанием клавиш Alt+F11
Далее идем Tool->References, в открывшемся окне ищем нашу dll, если она уже регистрировалась в реестре, и отмечаем галкой, или же нажимаем кнопку Browse и указываем путь к dll, программа сама добавит ее и отметит галку, если данная dll имеет интерфейс. Нажимаем ОК.
Если выделить процедуру в правов окне, то увидим ее параметры и описание
К примеру, если создадим не
То получим много интересных возможностей.
Дерзайте, инструмент показал, дальше дело за вами.
Как узнать версию dll
Хочу написать батничек, регистрирущий и копирующий в %SystemRoot%\system32 библилотеки |
читающие эту инфу из файлов (есть старая, но она не понимает юникодовых тегов). |
Как исправить ошибки DLL файлов в Windows
Ниже мы рассмотрим проблемы с работой DDL файлов в самых популярных версиях операционной системы Windows, разберем почему возникают проблемы с DLL, а также предоставим способы их устранения.
Содержание:
Динамические исполняемые библиотеки (DLL) представляют собой специальные программные компоненты, которые позволяют обращаться к одному файлу сразу нескольким приложениям. Основным предназначением таких библиотек является расширение возможностей утилит и экономия места, поскольку для использования аналогичных компонентов можно иметь всего одну версию файла, которая будет делиться между всеми программами.
Почему возникают ошибки с DLL?
Ошибки DLL могут возникать по самым различным причинам. Чаще всего они проявляют себя при запуске каких-либо приложений и программ. Нередки случаи, когда ошибки с DLL происходят во время запуска недавно вышедших компьютерных игр или программ.
Из-за ошибок DLL приложение может не корректно работать или вовсе не загружаться, поэтому следует ознакомиться с возможными причинами появления ошибок.
Одной из основных причин возникновения ошибок DLL является простое отсутствие библиотек, которые требуются для работы приложений. Недостающие файлы могут быть удалены самим пользователем, уничтожены вирусами или перезаписанными более старыми версиями в процессе установки программных компонентов. Помимо этого, ошибки могут возникать из-за неправильной работы драйверов, недостающего программного обеспечения, такого как NET Framework, DirectX и т.д.
Ошибки DLL могут быть вызваны и более серьезными проблемами, связанными с жестким диском.
Решение проблем с DDL файлами
DLL библиотеки тесно вплетены в различные системные процессы, поэтому при повреждении некоторых из них операционная система может попросту перестать запускаться. Если это произошло, следует прибегнуть к встроенным средствам восстановления системы. Чтобы попасть в среду восстановления, достаточно вставить загрузочную флешку или диск с Windows либо автоматически попасть в среду после трех неудачных попыток загрузки.
Для быстрого возврата работоспособности системы пользователь может выбрать один из трех пунктов восстановления, представленных в левой части окна среды восстановления.
Если проблема кроется в некорректной работе загрузчика, рекомендуем ознакомиться со способами решения этой проблемы в статье «Как восстановить загрузчик Windows 10».
Недостающие компоненты C++ Runtime Library и DirectX
Чаще всего пользователи сталкиваются с проблемой ошибок DLL, которые связаны с отсутствием необходимых компонентов C++ Runtime Library либо DirectX.
Существует два способа решения проблем с недостающими компонентами DLL. Первый и более правильный – полная переустановка сбойного ПО. Второй – скачивание непосредственно одного компонента, вызывающего ошибку.
Ошибка msvcr100.dll – сбойный компонент в системе безопасности.
Ошибки dxgi.*, d3dx9_25.*, d3d11.*, d3dx9.*, d3dx9_43.*, xinput1_3.*, d3dx9_31.*, xinput1_2.*, d3dx9_31.*, d3dx9_34.*, d3dx9_42.*, x3daudio1_7.*, x3daudio1_6.*, xrsound.* d3dx10_43.*, d3dx9_26.*, d3dx9_30.*, d3dx9_27.*, d3dx11_43.*, d3dcompiler_43.*, d3d10.*.
Ошибка steam_api.dll – распространённая ошибка среди геймеров и пользователей магазина цифровой дистрибуции Steam. Часто возникает при установке пиратских сборок игр и взломанных клиентов Steam.
Решение – удаление Steam через панель управления и чистая переустановка программы-магазина с официального сайта. https://store.steampowered.com/about/
Важно: мы настоятельно не рекомендуем скачивать отдельные недостающие файлы steam_api.dll, которые можно часто встретить на просторах интернета. Это обусловлено тем, что многие злоумышленники специально распространяют зараженные файлы или шпионские утилиты под видом dll-файлов. Если такой файл попадет на компьютер пользователя, существует большая вероятность утери доступа к аккаунту.
Ошибка uplay_r1_loader.*, Uplay.exe, uplay.*, ubiorbitapi_r2_loader.* — аналогичная ошибка, как и с со Steam.
Решение – удаление и переустановка цифрового магазина https://uplay.ubisoft.com/en-GB
Ошибка xlive – проблемы с файлами цифрового магазина Microsoft.
Решение – установка последней версии программы со всеми обновлениями http://go.microsoft.com/fwlink/?LinkID=201134
Ошибка msvcrt.*, msvcr71.*, msvcrt.*, msvcp120.*, msvcp110.* x64 msvcr90.*, msvcr110.*, msvcr100.*, msvcr80.*, msvcr120.*.
Решение — скачать и установить недостающие компоненты ПО с официального сайта https://www.microsoft.com/ru-RU/download/details.aspx?id=52685
Ошибка physxcudart_20.*, physxloader.* и т.д.- проблемы с файлами NVIDIA PHYSX SYSTEM.
Удаление сбойного приложения
В некоторых случаях установка компонентов может не помочь, поскольку проблема кроется в сбойной программе, использующей DLL библиотеки.
Чтобы определить сбойное приложение, необходимо:
Шаг 1. Нажимаем левой кнопкой мыши по иконке «Поиск» (изображение лупы возле кнопки «Пуск») и вводим в строку фразу «Панель управления», после чего переходим в непосредственно сам пункт «Панель управления».
Шаг 2. В открывшемся окне выбираем режим отображения «Категория» и переходим в «Удаление программы».
Шаг 3. В списке установленных программ выбираем метод сортировки по дате и находим приложение, после которого начались проблемы с файлами DLL. Это может быть компьютерная игра, устаревшая версия какой-либо программы или любое другое приложение. Для удаления программы достаточно дважды кликнуть левой кнопкой мыши по её имени и провести деинсталляцию.
Обновление драйверов устройства
Нередки случаи, когда ошибки DLL библиотек возникали из-за устаревшей версии драйверов жестких дисков и другого оборудования. Чтобы исключить эти неисправности следует провести обновление драйверов видеокарты и оборудования. Как правило, это можно сделать на официальных сайтах производителей компонентов.
Помимо этого, рекомендуем проверить драйвера носителей следующим образом:
Шаг 1. Находясь в панели управления выбираем пункт «Оборудование и звук».
Шаг 2. В открывшемся окне переходим в пункт «Диспетчер устройств».
Шаг 3. Переходим во вкладку «Дисковые устройства», выбираем нужный носитель и нажимаем по нему ПКМ, после чего в меню будет доступен пункт «Обновить драйвер».
Другие проблемы с DLL библиотеками
Нередко DLL библиотеки используются вирусами или сами файлы вредоносного ПО маскируются под компоненты DLL. В таком случае следует провести глубокую проверку системы при помощи надёжных антивирусных программ. Стоит понимать, что самые новые вирусы могут не находиться даже передовым программным обеспечением, поэтому при сильном поражении системы рекомендовано провести чистую установку либо выполнить откат системы до предыдущего состояния.
Чтобы сделать это из работающей системы, необходимо:
Шаг 1. Нажать ПКМ по кнопке «Пуск» и выбрать пункт «Выполнить». В открывшемся окне вводим команду «rstrui.exe» и нажимаем «Ок».
Шаг 2. В следующем окне следует выбрать точку восстановления. Если проблема появилась после обновлением Windows, не следует выбирать последнюю точку восстановления — восстановите систему из той точки, где ошибки еще не было.
Что делать, если важный файл или DLL библиотека были случайно удалены?
Библиотеки DLL, как и любые другие данные, могут пострадать по многим причинам: повреждение вирусами, случайное удаление сочетанием клавиш Shift+Delete, форматирование или изменение файловой системы и логической структуры диска и т.д.
В таких случаях незаменимым помощником станет специальная утилита для восстановления данных RS Partition Recovery.
Функционал программы позволяет производить быстрое восстановление удаленных файлов с жестких дисков, карт памяти, флеш-накопителей и других носителей любых типов. Для работы RS Partition Recovery используется два метода анализа диска: полный – для поиска всех возможных для восстановления данных, и быстрый – поверхностный анализ носителя для поиска информации, которая была удалена недавно. Это позволяет выбирать и использовать наиболее эффективный метод, способный вернуть DDL библиотеки, изображения, медиафайлы, компоненты программ и другую информацию независимо от расширения.
Часто задаваемые вопросы
Это сильно зависит от емкости вашего жесткого диска и производительности вашего компьютера. В основном, большинство операций восстановления жесткого диска можно выполнить примерно за 3-12 часов для жесткого диска объемом 1 ТБ в обычных условиях.
Если файл не открывается, это означает, что файл был поврежден или испорчен до восстановления.
Используйте функцию «Предварительного просмотра» для оценки качества восстанавливаемого файла.
Когда вы пытаетесь получить доступ к диску, то получаете сообщение диск «X: \ не доступен». или «Вам нужно отформатировать раздел на диске X:», структура каталога вашего диска может быть повреждена. В большинстве случаев данные, вероятно, все еще остаются доступными. Просто запустите программу для восстановления данных и отсканируйте нужный раздел, чтобы вернуть их.
Пожалуйста, используйте бесплатные версии программ, с которыми вы можете проанализировать носитель и просмотреть файлы, доступные для восстановления.
Сохранить их можно после регистрации программы – повторное сканирование для этого не потребуется.
- как узнать версию dle
- как узнать версию docker