Delphi-Quellcode:
var
VerBufValue: Pointer;
Es gibt zwei Version von StrPas ... einmal
ANSI (PAnsiChar) und
Unicode (PWideChar)
da VerBufValue aber nur als Pointer deklariert ist, kann Delphi nicht mehr entscheiden was genommen werden soll.
Lösung:
Deklariere VerBufValue als PChar.
Dank einer automatischen Typkonvertierung könnte man
StrPas auch weglassen.
Delphi-Quellcode:
var
VerBufValue: PChar;
...
function GetInfo(const aKey: string): string;
begin
VerKey := Format('\StringFileInfo\%.4x%.4x\%s',
[LoWord(PInteger(VerBufValue)^), HiWord(PInteger(VerBufValue)^), aKey]);
if VerQueryValue(VerBuf, PChar(VerKey), VerBufValue, VerBufLen) then
Result := VerBufValue
else
Result := '';
end;
PS:
Zitat von
OH:
StrPas ist nur aus Gründen der Abwärtskompatibilität vorhanden.