- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
const VS_FIXEDFILEINFO* GetFileVersion(PCWSTR name)
{
HMODULE hmod = GetModuleHandle(name);
static LPCWSTR a[3] = { RT_VERSION, MAKEINTRESOURCE(1) };
PIMAGE_RESOURCE_DATA_ENTRY pirde;
PVOID pv;
DWORD size;
return !hmod ||
0 > LdrFindResource_U(hmod, a, 3, &pirde) ||
0 > LdrAccessResource(hmod, pirde, &pv, &size) ||
size < sizeof(VS_FIXEDFILEINFO)
? 0 : (VS_FIXEDFILEINFO*)findDWORD((size - sizeof(VS_FIXEDFILEINFO))/sizeof(DWORD) + 1, (PDWORD)pv, 0xfeef04bd);
}
bormand 17.11.2014 00:34 # +1
bormand 17.11.2014 00:38 # 0
guest 18.11.2014 03:37 # 0
GetModuleHandle - ага, ну конечно kernel
bormand 18.11.2014 06:23 # 0
guest 18.11.2014 11:27 # +1
>как - элементарно
>есть нормальные функции - а LdrAccessResource менее нормальная чем LoadResource ?? вторая всего лишь тонкая оболочка вокруг первой к тому же менее удобная - не возвращает размер ресурса например. нужно дополнительно SizeofResource вызывать. не возвращает кода ошибки если что.