ok, получение файловой версии dll перед загрузкой, легко. im используя GetFileVersionInfoSize + GetFileVersionInfo + VerQueryValue, и он работает как шарм.Получение версии уже загруженной DLL (Windows API)
А что, если DLL уже загружена? Я знаю, что вы можете использовать LoadLibrary + IMAGE_DOS_HEADER + IMAGE_NT_HEADERS для получения определенной информации, такой как имена функций и т. д. Я заметил, что IMAGE_OPTIONAL_HEADER имеет разные поля версии, такие как MajorImageVersion & MinorImageVersion и т. д. Я пробовал почти все, но эти поля не всегда установлены и когда они есть, они не соответствуют значениям, возвращаемым GetFileVersionInfo. поэтому я предполагаю, что я смотрю не в то место. есть идеи?
'GetModuleFileName' предоставит вам имя файла. 'LoadLibrary', если вы не знаете HMODULE загруженной dll. – dxiv
Кто сказал что-нибудь про имя файла? im, пытаясь получить файловую версию уже загруженной dll. – bananashakealchemist
После того, как вы получили имя, вы можете использовать код 'GetFileVersionInfoSize + GetFileVersionInfo + VerQueryValue', который у вас уже есть. Загрузится ли .dll или нет, это несущественно, когда вы получаете информацию о версии. – dxiv