Как узнать версию dll
Как узнать версию dll
Полезные ссылки:
FAQ Раздела
Обновления для FAQ Раздела
Поиск по Разделу
MSDN Library Online
Такой вопрос можно ли как то программно прочесть версию *.dll и *.exe
Добавлено 21.02.08, 05:17
информационных полей может быть больше, в мсдн они описаны
BOOL GetFileVersionInfo( LPTSTR lptstrFilename,
DWORD dwHandle,
DWORD dwLen,
LPVOID lpData
);
Parameters
lptstrFilename
[in] Pointer to a null-terminated string that specifies the name of the file of interest. If a full path is not specified, the function uses the search sequence specified by the LoadLibrary function.
Windows 95/98/Me: The short path form of the specified file name must be less than 126 characters.
dwHandle
This parameter is ignored.
dwLen
[in] Specifies the size, in bytes, of the buffer pointed to by the lpData parameter.
Call the GetFileVersionInfoSize function first to determine the size, in bytes, of a file’s version information. The dwLen member should be equal to or greater than that value.
If the buffer pointed to by lpData is not large enough, the function truncates the file’s version information to the size of the buffer.
lpData
[out] Pointer to a buffer that receives the file-version information.
You can use this value in a subsequent call to the VerQueryValue function to retrieve data from the buffer.
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Как посмотреть содержимое dll
Т.к. разработчики линивые люди и не любят писать инструкции, то приходится самим разбираться и искать то, чего они не написали.
Часто бывают случаи, когда есть dll, мы догадываемся, что она что-то умеет делать, но не знаем, какие у нее есть экспортные функции и какие нужно передавать туда входные параметры. Или еще хуже, когда есть инструкция, все делаем по ней, передаем нужное количество параметров, а она нам ругается, что либо не хватает параметров, либо тип не соответствует. Можно искать ответа у разработчиков, но это может затянуться на очень длительное время.
Идем в Exсel и открываем Visual Basic сочетанием клавиш Alt+F11
Далее идем Tool->References, в открывшемся окне ищем нашу dll, если она уже регистрировалась в реестре, и отмечаем галкой, или же нажимаем кнопку Browse и указываем путь к dll, программа сама добавит ее и отметит галку, если данная dll имеет интерфейс. Нажимаем ОК.
Если выделить процедуру в правов окне, то увидим ее параметры и описание
К примеру, если создадим не
То получим много интересных возможностей.
Дерзайте, инструмент показал, дальше дело за вами.
Как узнать версию dll
Хочу написать батничек, регистрирущий и копирующий в %SystemRoot%\system32 библилотеки |
читающие эту инфу из файлов (есть старая, но она не понимает юникодовых тегов). |
Как я могу проверить 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 файлы для исправления ошибок в играх и приложениях
Во время запуска игр, приложений видите ошибку «Отсутствует DLL файл»? На этой страницу Вы найдете решение своей проблемы и сможете скачать недостающие библиотеки.
Полный список DLL
Сначала рекомендуем обновить библиотеки DirectX (инструкция внизу страницы), и лишь потом пробуйте скачивать нужный файл напрямую:
Скачать D3dx9_42.dll для разрядности 32 и 64 бит
Сначала рекомендуем обновить библиотеки MVC++ 2015:
Скачать Microsoft Visual C++ 2015
и лишь потом пробуйте скачивать нужный файл напрямую:
Скачать msvcp140.dll для разрядности 32 и 64 бит
Первым делом вам нужно узнать версию своей операционной системы и её разрядность. Эти данные можно найти в Панель управления->Система. Обратите внимание на версию Windows и на графу «Тип системы», где написана разрядность операционки. Если у вас XP или Windows 7 старой версии, то вам нужно скачать Microsoft Visual C++ 2010. Если Windows 7 SP1, Windows 8 или десятка, то понадобится пакет Visual C++ 2012, не забывайте о разрядности. Скачивать пакет лучше с официального сайта Microsoft, это бесплатно. После установки Visual C++ ошибка «отсутствует msvcp110.dll» пропадёт.
Скачать Microsoft Visual C++
и лишь потом пробуйте скачивать нужный файл напрямую:
Скачать msvcp110.dll для разрядности 32 и 64 бит
Рекомендуем в первую очередь, скачать и установить полностью пакет Microsoft Visual C++ 2015. Ошибка должна сразу исчезнуть.
Скачать Microsoft Visual C++
и лишь потом пробуйте скачивать нужный файл напрямую:
Скачать vcruntime140.dll для разрядности 32 и 64 бит
Рекомендуем сначала скачать и установить Directshow Filters for Ogg Vorbis (если загрузка не стартует, то кликните по ссылке правой кнопкой мышки и выберите пункт «Сохранить ссылку как…»), С помощью этого фреймворка, можно исправить данную ошибку автоматически. Нужно лишь скачать на компьютер и запустить файл, программа всё сделает за Вас. Это проще, чем скачивать DLL файл, и помещать его вручную.
И лишь потом пробуйте скачивать нужный файл напрямую:
Скачать Vorbisfile.dll для разрядности 32 и 64 бит
Регистрация файлов библиотеки в системе
Перед тем как установить DLL файл на Windows 7,8,10, их нужно скачать, причем точно под разрядность системы.
Давайте определим, какая разрядность у Вашей системы (если вы точно знаете, можете пропустить этот шаг)
Шаг 1. Кликаем правой кнопкой мыши по «Мой компьютер» — выбираем «Свойства»:
Шаг 2. В открывшемся окне, мы может прочитать свойства компьютера, версию операционной системы и её разрядность 32 (х86) или 64 бит. В нашем случаи стоит 64-разрядная операционная система Windows 10.
Шаг 3. Следует распаковать ZIP-архив, который Вы скачали. В нём могут быть вложенные архивы (не более двух), если есть версии для Windows 32 и 64 bit. Внутри найдете файл с расширением «dll», который копируем в вышеуказанные папки.
Ситуации бывают разные, но, зачастую, необходимо поместить недостающий элемент в следующие папки:
Шаг 4. Файл нужно зарегистрировать в системе.
в открывшемся окне ввести через пробел следующее:
regsvr32 имя файла.dll
– где, «regsvr32» ─ команда для регистрации, а «имя файла.dll» – полное имя вставленного компонента;
или же можно прописать расположение файла вручную —
regsvr32.exe + путь к файлу
Шаг 5. Нажмите «ОК», и перезагрузите компьютер, и новые параметры вступят в силу.
Сразу хочется отметить, что при регистрации возможны появления ошибок. Например: «Не удалось загрузить модуль». Обычно они возникают по 3 причинам
Второй способ регистрации
Шаг 1. Зарегистрировать файл можно с помощью командой строки, которую нужно запустить от имени администратора.
Шаг 2. Пишем команду
regsvr32.exe + путь к файлу
Шаг 3. Появится сообщение что «Всё прошло удачно», и просто перезагружаем компьютер
Вот и всё, файл зарегистрирован, можете пробовать запускать вашу игру или программу
А вот, некоторые советы, которые могут вам пригодиться.
Как обновить DirectX
С помощью обновления/установки DirectX, вы можете исправить множество ошибок при установке игр и программ:
Скачать веб установщик DirectX
Программа определит, каких компонентов не хватает и установит их сама.
- коды образования по окин 2019
- Как узнать ядро видеокарты