Pascal 字符串到指针

Pascal string to pointer

我正在尝试在 sdl 中创建日志,我需要写时间。 文本必须是指针。

date //pointer
:=
DateTimeToStr(Now);// AnsiString

这里的日期是指针,DateTimeToStr(Now) returns AnsiString 和编译器停在那里。 如何解决?

我假设您使用的是 Delphi 或 FreePascal。您当前的代码会给您一个 Incompatible Types 错误。您需要将 DateTimeToStr(Now) 的结果分配给一个字符串,并将您的指针分配给该字符串的地址。这是一个例子。

procedure ShowDateTime;
var
  date: ^AnsiString;
  str: AnsiString;
begin
  str := DateTimeToStr(Now);
  date := @str;
  Writeln(date^);
end;  

Delphi or FreePascal 中阅读如何使用指针。

解决方案是使用PChar,即pointer to Char

var
  str: AnsiString;
  pDateStr: PChar;
...
  str := DateTimeToStr(Now);
  pDateStr := PChar(str);
  // Do whatever you want with the PChar pDateStr