请教Getfileversion问题
function GetBuildInfo(FName:string):TSimpleVersion;
var
VerInfoSize: DWORD;
VerInfo: Pointer;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;
V1, V2, V3, V4: Word;
begin
FName为:c:\winnt\explorer.exe,文件版本号为:5.0.3315.2846
VerInfoSize := GetFileVersionInfoSize(PChar(FName), Dummy);
if VerInfoSize>0 then VerInfo:=nil;
GetMem(VerInfo, VerInfoSize);
GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
//上一句执行完后VerInfo值为$DD9B24
VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
//上一句执行完后,VerValue值为$11,但下面的WITH语句无法执行
with VerValue^ do//
begin
V1 := dwFileVersionMS shr 16;
V2 := dwFileVersionMS and $FFFF;
V3 := dwFileVersionLS shr 16;
V4 := dwFileVersionLS and $FFFF;
end;
FreeMem(VerInfo, VerInfoSize);
end;
这样,我无法得到文件的版本号,我也不知道问题的所在。