expand.exe命令为什么能显示CD.iso的版本信息?
第0部分:
D:\chsads\i386>expand.exe
Microsoft (R) File Expansion Utility Version 5.2.3790.0
版本所有 (c) Microsoft Corporation. 保留所有权利。
未指定文件。
第一部分:
\base\win32\lz32\tools\expand\expand.c
#include <ntverp.h>
// Display sign-on banner.
LoadString(NULL, SID_BANNER_TEXT, ErrorMsg, 2048);
// WARNING: Cannot call CharToOemW with src=dest
CharToOem(ErrorMsg, ErrorMsg);
printf(ErrorMsg, VER_PRODUCTVERSION_STR);
第二部分:
#define VER_PRODUCTBUILD /* NT */ 3790
#define VER_PRODUCTBUILD_QFE 0
#define VER_PRODUCTMAJORVERSION 5
#define VER_PRODUCTMINORVERSION 2
#define VER_PRODUCTBETA_STR /* NT */ ""
#define VER_PRODUCTVERSION_MAJORMINOR2(x,y) #x "." #y
#define VER_PRODUCTVERSION_MAJORMINOR1(x,y) VER_PRODUCTVERSION_MAJORMINOR2(x, y)
#define VER_PRODUCTVERSION_STRING VER_PRODUCTVERSION_MAJORMINOR1(VER_PRODUCTMAJORVERSION, VER_PRODUCTMINORVERSION)
#define VER_PRODUCTVERSION_STR2(x,y) VER_PRODUCTVERSION_STRING "." VER_BPAD #x "." #y
#define VER_PRODUCTVERSION_STR1(x,y) VER_PRODUCTVERSION_STR2(x, y)
#define VER_PRODUCTVERSION_STR VER_PRODUCTVERSION_STR1(VER_PRODUCTBUILD, VER_PRODUCTBUILD_QFE)
第三部分:
VER_BPAD的作用是VER_PRODUCTBUILD补齐4位
#if (VER_PRODUCTBUILD < 10)
#define VER_BPAD "000"
#elif (VER_PRODUCTBUILD < 100)
#define VER_BPAD "00"
#elif (VER_PRODUCTBUILD < 1000)
#define VER_BPAD "0"
#else
#define VER_BPAD
#endif