在IDE中编辑VS_VERSION_INFO, 有些选项不知道含义. 有些选项含义相近,不知道区别.
现在代码提交前要设置代码版本号,
FileVersion, ProductName的区别?
PrivateBuild, SpecialBuild的区别?
读取文件版本号的实验,整理过. 现在找到了更好的资料:
Class Wrapper to Retrieve Module Information (VS_VERSION_INFO Resource)
http://www.codeguru.com/cpp/misc/misc/versioninfo/article.php/c3823
在codeproject上搜索'VS_VERSION_INFO', 有vside自动增加版本号的例子, 这个实验要做一下.
<2010_1223>
这个demo在XpSp3上运行不过, 以这个程序做原型,做个工具来查看文件的版本信息, UI要比原来的好看.
用这个工具来查看发行的可执行文件, 可以把漏掉的版本选项检查出来. 从而修正原来的exe的rc信息. 便于从exe来查找文件的源码控制对应的版本.
看了一些Demo, 最后都调用的是MS SDK 中的Version API.
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.en/winui/winui/windowsuserinterface/resources/versioninformation.htm
<2010_1224>
又找了些资料,整合了一个PE文件版本信息查询工具.UI做的很漂亮.
能查询的版本信息:
运行效果图:
工程已上传: http://download.csdn.net/source/2933816
手工在IDE中填写Vs_VERSION_INFO, 各项含义如下:
String | Meaning |
---|---|
Comments | The Value member contains any additional information that should be displayed for diagnostic purposes. This string can be an arbitrary length. |
CompanyName | The Value member identifies the company that produced the file. For example, "Microsoft Corporation" or "Standard Microsystems Corporation, Inc." |
FileDescription | The Value member describes the file in such a way that it can be presented to users. This string may be presented in a list box when the user is choosing files to install. For example, "Keyboard driver for AT-style keyboards" or "Microsoft Word for Windows". |
FileVersion | The Value member identifies the version of this file. For example, Value could be "3.00A" or "5.00.RC2". |
InternalName | The Value member identifies the file's internal name, if one exists. For example, this string could contain the module name for a dynamic-link library (DLL), a virtual device name for a Windows virtual device, or a device name for an MS-DOS device driver. |
LegalCopyright | The Value member describes all copyright notices, trademarks, and registered trademarks that apply to the file. This should include the full text of all notices, legal symbols, copyright dates, trademark numbers, and so on. In English, this string should be in the format "Copyright Microsoft Corp. 1990–1994". |
LegalTrademarks | The Value member describes all trademarks and registered trademarks that apply to the file. This should include the full text of all notices, legal symbols, trademark numbers, and so on. In English, this string should be in the format "Windows is a trademark of Microsoft Corporation". |
OriginalFilename | The Value member identifies the original name of the file, not including a path. This enables an application to determine whether a file has been renamed by a user. This name may not be MS-DOS 8.3-format if the file is specific to a non-FAT file system. |
PrivateBuild | The Value member describes by whom, where, and why this private version of the file was built. This string should only be present if the VS_FF_PRIVATEBUILD flag is set in the dwFileFlags member of the VS_FIXEDFILEINFO structure. For example,Value could be "Built by OSCAR on /OSCAR2". |
ProductName | The Value member identifies the name of the product with which this file is distributed. For example, this string could be "Microsoft Windows". |
ProductVersion | The Value member identifies the version of the product with which this file is distributed. For example, Value could be "3.00A" or "5.00.RC2". |
SpecialBuild | The Value member describes how this version of the file differs from the normal version. This entry should only be present if the VS_FF_SPECIALBUILD flag is set in the dwFileFlags member of the VS_FIXEDFILEINFO structure. For example, Valuecould be "Private build for Olivetti solving mouse problems on M250 and M250E computers". |