Click here to Skip to main content
Licence 
First Posted 18 Jun 2002
Views 113,340
Downloads 2,509
Bookmarked 30 times

ShowVer.exe command-line VERSIONINFO display program

By tpeck | 18 Jun 2002
A command-line program that interprets and displays VERSIONINFO resource values from a DLL or EXE.
1 vote, 5.6%
1

2
1 vote, 5.6%
3
3 votes, 16.7%
4
13 votes, 72.2%
5
4.39/5 - 22 votes
1 removed
μ 4.28, σa 1.87 [?]

Introduction

Did you ever wish for a way to quickly peek inside a mystery DLL to see who wrote it and what it does? If the DLL has version information built in, you could browse to the DLL file in Windows Explorer and then click through the items in the Version tab of the Properties context menu dialog for the file. That's kind of a nuisance for me, so I wrote this handy program, ShowVer.exe. ShowVer will show you all the version info at once.

The source code for ShowVer will also show you how to traverse the tree of information that a VERSIONINFO resource contains, bypassing the need to use the VerQueryValue Win32 API to retrieve individual strings based on a particular hard-coded key name and language/locale ID that you might be expecting to be present.

ShowVer.exe is a command-line program that displays the complete VERSIONINFO contents of a named file. It works on EXE's and DLL's. It is useful for 3 reasons:

  1. It shows all the version info from a file, in all its languages. It does this by interpreting the raw data structures that compose a VERSIONINFO resource. The Win32 APIs (VerQueryValue) will only show you a value from the VERSIONINFO resource if you ask for it by name.
  2. It allows you to name the file whose information you want to see. Often the file you want to examine resides in the System32 directory, which is crowded and unpleasant to browse through using Windows Explorer.
  3. It is a standalone command-line utility that operates on external files, unlike DLLVersion which is a tool you incorporate into a running process.

The source code to ShowVer demonstrates how to load (using GetFileVersionInfo and GetFileVersionInfoSize), parse and traverse the tree of pseudo-structures that make up a VERSIONINFO resource (VS_VERSIONINFO, String, StringTable, StringFileInfo, Var, VarFileInfo).

It will also display a hex dump of the raw VERSIONINFO resource block if you rebuild it with '#define HDUMP 1'. One interesting observation from the hex dump feature is that GetFileVersionInfo never seems to fill up the whole memory buffer that GetFileVersionInfoSize requests.

Here is sample output from ShowVer.exe:

N:\work\ShowVer\Debug>ShowVer w:\winnt\system32\mshtml.dll
VERSIONINFO for file "w:\winnt\system32\mshtml.dll":  (type:0)
  Signature:       feef04bd
  StrucVersion:    1.0
  FileVersion:     6.0.2600.0
  ProductVersion:  6.0.2600.0
  FileFlagsMask:   0x3f
  FileFlags:       0
  FileOS:          VOS_NT_WINDOWS32
  FileType:        VFT_DLL
  FileDate:        0.0
 LangID: 040904B0
  CompanyName       : Microsoft Corporation
  FileDescription   : Microsoft (R) HTML Viewer
  FileVersion       : 6.00.2600.0000
  InternalName      : MSHTML
  LegalCopyright    : ¬ Microsoft Corporation. All rights reserved.
  OriginalFilename  : MSHTML.DLL
  ProductName       : Microsoft« Windows« Operating System
  ProductVersion    : 6.00.2600.0000
  OleSelfRegister   :
 Translation: 040904b0

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

tpeck

Web Developer

Anonymous Proxy Anonymous Proxy

Member
Ted Peck is a consultant with over 20 years' experience in software development and technical management. His company, Roundwave Development, specializes in designing GUI, network and database tools and systems.
 
Ted believes in thoughtful systems design with the aim of maximizing utility while minimizing complexity. If you're careful you can build software that's both powerful and easy to use.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralResourceLib: same thing in C# with r/w PinmemberdB.13:27 8 Oct '08  
GeneralSee also sigcheck from sysinternals Pinmemberbrofield8:23 29 Jan '07  
GeneralRelayer's comment - A fix for this PinsussAnonymous16:52 29 Sep '05  
GeneralRe: Relayer's comment - A fix for this Pinmemberrelayer_delirium17:00 29 Sep '05  
GeneralUnderstanding the code Pinmemberlstoumbos6:09 7 Sep '05  
GeneralLoading ALL strings from my stringtable PinmemberAlex Evans16:05 4 May '05  
Hi there
 
How can I (using VC6 / MFC) load ALL strings from a stringtable, one-by-one, getting the IDS value as well as the actual text, for all strings in my program's stringtable?
 
Thanks
 
Alex
Generaldebug assertion failed PinmemberKaren Amstutz12:03 13 Jul '04  
Generalincorrect search order Pinmemberrelayer_delirium16:37 9 Mar '04  
GeneralProblem vc to call VB form dll Pinmemberchi-yuchan@rocketmail.com0:26 1 Mar '04  
GeneralThis is exactly what i want, thanks. Pinmembert2di4u0:27 18 Dec '03  
Generaldoes not run in win9X PinsussHae Moon, Kwon16:12 25 Mar '03  
GeneralRe: does not run in win9X PinsussRenato Mauro23:06 14 Apr '03  
GeneralProblems PinmemberMike C9:17 19 Jun '02  
GeneralRe: Problems Pinmembertpeck18:51 1 Jul '02  
GeneralFile Date in VS_FIXEDFILEINFO PinmemberClaudius Mokler2:24 19 Jun '02  
GeneralRe: File Date in VS_FIXEDFILEINFO Pinmembertpeck19:08 1 Jul '02  
GeneralRe: File Date in VS_FIXEDFILEINFO Pinmembercasanova_n775:22 9 Feb '04  
GeneralRe: File Date in VS_FIXEDFILEINFO PinmemberDavidCrow7:03 3 Mar '04  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web04 | 2.5.120210.1 | Last Updated 19 Jun 2002
Article Copyright 2002 by tpeck
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid