Recent

Author Topic: Pointer syntax?  (Read 1855 times)

kapibara

  • Hero Member
  • *****
  • Posts: 610
Pointer syntax?
« on: August 30, 2015, 01:11:48 am »
The procedure below only compiles under $mode delphi. How to make it work with $mode objfpc?

procedure SetPointerToData;
var
  t: TPSVariantIFC;
begin
  t.Dta := @PPSVariantData(v).Data;
end;


Type definitions used:

PPSVariantData = ^TPSVariantData;
TPSVariantData = packed record
  VI: TPSVariant;
  Data: array[0..0] of Byte;
end;

TPSVariantIFC = packed record
  Dta: Pointer;
  aType: TPSTypeRec;
  VarParam: Boolean;
end;

(The code is part of PascalScript)
Lazarus trunk / fpc 3.2.2 / Kubuntu 22.04 - 64 bit

Basile B.

  • Guest
Re: Pointer syntax?
« Reply #1 on: August 30, 2015, 02:16:19 am »
try this:

Code: [Select]
t.Dta := @PPSVariantData(v)^.Data;
in FPC mode, dereference has to be explicit.

kapibara

  • Hero Member
  • *****
  • Posts: 610
Re: Pointer syntax?
« Reply #2 on: August 30, 2015, 03:07:26 am »
That works, thanks.
Lazarus trunk / fpc 3.2.2 / Kubuntu 22.04 - 64 bit

 

TinyPortal © 2005-2018