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
我正在尝试在 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