Gamecat явное преобразование работает. Я объясняю проблему более подробно ниже, чтобы, возможно, кто-то мог указать на лучшее решение.
Я использую следующую функцию для получения даты компиляции приложения:
function LinkerTimeStamp(const FileName: string): TDateTime;
var
LI: TLoadedImage;
begin
{$IFDEF UNICODE}
Win32Check(MapAndLoad(PAnsiChar(AnsiString(FileName)), nil, @LI, False, True));
{$ELSE}
Win32Check(MapAndLoad(PChar(FileName), nil, @LI, False, True));
{$ENDIF}
Result := LI.FileHeader.FileHeader.TimeDateStamp / SecsPerDay + UnixDateDelta;
UnMapAndLoad(@LI);
end;
MapAndLoad требует PAnsiChar для параметра ImageName, поэтому мне нужно преобразовать строку в юникоде. Есть ли другая альтернатива, чтобы сначала явно преобразовать в AnsiString?