Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef _WIN32
- #include <windows.h>
- void getFileVersion(LPCTSTR szVersionFile)
- {
- DWORD verHandle = 0;
- UINT size = 0;
- LPBYTE lpBuffer = NULL;
- DWORD verSize = GetFileVersionInfoSize( szVersionFile, &verHandle);
- if (verSize != NULL)
- {
- LPSTR verData = new char[verSize];
- if (GetFileVersionInfo( szVersionFile, verHandle, verSize, verData))
- {
- if (VerQueryValue(verData,L"\\",(VOID FAR* FAR*)&lpBuffer,&size))
- {
- if (size)
- {
- VS_FIXEDFILEINFO *verInfo = (VS_FIXEDFILEINFO *)lpBuffer;
- if (verInfo->dwSignature == 0xfeef04bd)
- {
- // Doesn't matter if you are on 32 bit or 64 bit,
- // DWORD is always 32 bits, so first two revision numbers
- // come from dwFileVersionMS, last two come from dwFileVersionLS
- printf( "File Version: %d.%d.%d.%d\n",
- ( verInfo->dwFileVersionMS >> 16 ) & 0xffff,
- ( verInfo->dwFileVersionMS >> 0 ) & 0xffff,
- ( verInfo->dwFileVersionLS >> 16 ) & 0xffff,
- ( verInfo->dwFileVersionLS >> 0 ) & 0xffff
- );
- }
- }
- }
- }
- delete[] verData;
- }
- }
- #endif
- // Example usage
- int main(int argc, char *argv[])
- {
- getFileVersion(L"myprogram.exe");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement