Hello guys

Hello guys,
A man posted a bug report related to my new project (DebugEngine). He said that he can't compile the library because Delphi (XE3) is unable to recognize FinalizeRecord function ! He got : "Undeclared Identifier: 'FinalizeRecord' error".
I told him to disable all 3rd party libraries and try call FinalizeRecord function like this: System.FinalizeRecord. After doing that he told me that the same error still exists !
That's very weird ! Does anyone knows what could be the problem ?

Comments

  1. /sub
    I have the same problem, Win 10 Ent x64, Seattle upd1

    ReplyDelete
  2. Zoran M Does this compile for you:

    program Project5;

    {$APPTYPE CONSOLE}

    {$R *.res}

    type
    TRec = record
    a: real;
    end;

    var
    r: TRec;

    begin
    FinalizeRecord(@r, TypeInfo(TRec));
    end.

    ReplyDelete
  3. Primož Gabrijelčič No, still get the message:

    [dcc32 Error] Project1.dpr(22): E2003 Undeclared identifier: 'FinalizeRecord'


    Searching Delphi source folder for 'FinalizeRecord' didn't produce any results ('_FinalizeRecord' exists, but not 'FinalizeRecord'.

    ReplyDelete
  4. Really weird. Which edition of Delphi/RAD Studio do you have?

    ReplyDelete
  5. I checked this out and while Berlin defines FinalizeRecord, Seattle only has _FinalizeRecord in the System unit and you cannot call it directly as compiler complains about 'Undeclared identifier: _FinalizeRecord'.

    ReplyDelete
  6. Guys I found the solution. Thank you for every one who participated to this post.
    We can use Finalize function instead of FinalizeRecord. "Finalize" is just a MACRO !!! It calls FinalizeRecord when working on record.

    ReplyDelete

Post a Comment