Ich weiß nicht, wie es bei FreePascal ist, aber bei Delphi werden Pointer-Referenzen wenn nötig standardmäßig automatisch aufgelöst. pipheader.protocol
entspricht also eigentlich pipheader^.protocol
.
Das funktioniert in Free Pascal nur im Modus Delphi. In den anderen Modi ist das nicht erlaubt, um die "Striktheit" der Sprache wieder sicherzustellen (ich persönlich habe es ganz gern, wenn mich der Compiler auf sowas mit einem Fehler aufmerksam macht
).
Daher ergibt sich auch die Lösung von thomasschaf das
{$mode objfpc}
durch
{$mode delphi}
zu ersetzen.
Gruß,
Sven