<div dir="ltr"><div>Hi Tomas,</div><div><br></div><div>On top of your suggestion, the only way to make FPC happy is to assign nil to the type constants and then assign the corresponding pointers to them somewhere:</div><div><br></div><div>unit eyelink.constants</div><div>interface</div><div dir="ltr">const<br>  EXTERNAL_DEV_NONE : TGetExButtonStatesFunction = nil;<br>  EXTERNAL_DEV_CEDRUS : TGetExButtonStatesFunction = nil;<br>  EXTERNAL_DEV_SYS_KEYBOARD : TGetExButtonStatesFunction = nil;</div><div dir="ltr"><br>implementation<br><br>initialization<br>  EXTERNAL_DEV_NONE := TGetExButtonStatesFunction(Pointer(0));<br>  EXTERNAL_DEV_CEDRUS := TGetExButtonStatesFunction(Pointer(1));<br>  EXTERNAL_DEV_SYS_KEYBOARD := TGetExButtonStatesFunction(Pointer(2));<br></div><div>end.</div><div><br></div><div>program godcastsucks;<br><br>uses eyelink.constants;<br><br>  function enable_external_calibration_device(<br>    buttonStatesfcn: TGetExButtonStatesFunction<br>    {other arguments removed for simplicity}): Int32; cdecl;<br>  var<br>    Statesfcn : TGetExButtonStatesFunction;<br>  begin<br>    if buttonStatesfcn = nil then<br>    begin<br>      WriteLn('Function is nil');<br>    end else begin<br>      WriteLn('Function is not nil');<br>    end;<br>    Result := Int32(buttonStatesfcn);<br>    case Result of<br>      0 : { do something };<br>      1 : { do something };<br>      2 : { do something }<br>    else<br>      begin<br>        Statesfcn := TGetExButtonStatesFunction(buttonStatesfcn);<br>        Statesfcn(nil);<br>        Result := -1;<br>      end;<br>    end;<br>  end;<br><br>function ExButtonStatesFunction(accdbs: PCCDBS): Int32; cdecl;<br>begin<br>  WriteLn('God casts sucks');<br>end;<br><br>begin<br>  WriteLn(enable_external_calibration_device(TGetExButtonStatesFunction(EXTERNAL_DEV_CEDRUS)));<br>  WriteLn(enable_external_calibration_device(@ExButtonStatesFunction));<br>  ReadLn;<br>end.<br></div><div><br></div><div>Best,</div><div>R</div><div><br></div><div>PS. If you find a better solution, please make me known!</div></div>