Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
IdAntiFreezeBase.pas(180): F2051 IdIOHandlerSocket different version
#5
(06-17-2018, 02:48 PM)erwinmars Wrote: In the meantime, i've done some more research. The issue occurs, because the declaration in an Interface section is changed. In the Indy files, the pas files have an {I IdCompilerDefines.in} as the Interface section. But because in Indy 10 the sources are split into Core, Protocols and System directory, now 3 files IdCompilerDefines.inc.

Indy 10 has always had 3 (well, 5, actually) copies of IdCompilerDefines.inc (and yes, I'm aware that is not a good idea - it will be changed in Indy 11 to use only 1 shared file).

(06-17-2018, 02:48 PM)erwinmars Wrote: But because all units should have the same interface, the 3 IdCompilerDefines IMHO needs to be identical. But they are not identical:

They should be identical, as they are always kept in sync in SVN.

(06-17-2018, 02:48 PM)erwinmars Wrote: Protocols\IdCompilerDefines.inc
1365 {$IFDEF WIN32_OR_WIN64}
      { DEFINE USE_OPENSSL}
      {$DEFINE USE_ZLIB_UNIT}
      {$IFNDEF DCC_NEXTGEN}
        {$DEFINE USE_OPENSSL} // !!! MOVED HERE BY EMBT
        {$DEFINE USE_SSPI}
        {$IFDEF STRING_IS_UNICODE}
          {$DEFINE SSPI_UNICODE}
        {$ENDIF}
      {$ENDIF}
    {$ENDIF}

That code IS NOT what is checked in to Indy's SVN. That block of code appears on line 1424, not on 1365. And if EMBT has made changes to Indy's source code, they never told me about it. And why they would opt to disable OpenSSL for NextGen, I have no idea, considering they don't even have a NextGen compiler for Windows yet. I'm going to have to talk to Embarcadero about this.

(06-17-2018, 02:48 PM)erwinmars Wrote: Core\IdCompilerDefines.inc
465   {$IFDEF FPC_2_7_1_OR_ABOVE}
     {.$MODE DelphiUnicode}
       {.$MODESWITCH UnicodeStrings}
     {$ENDIF}

That code IS what is checked in to Indy's SVN.

In any case, you should NOT be mixing Embarcadero's copy of Indy's source code with the code from Indy's SVN. It is an all-or-nothing deal. Either you use Embarcadero's copy, or you use the SVN copy, not both (at least, not in the same project). If you want to update Indy, you have to remove/disable Embarcadero's copy first, and then fully compile and install the SVN copy. This is outlined in Indy's installation instructions.

Reply


Messages In This Thread
RE: IdAntiFreezeBase.pas(180): F2051 IdIOHandlerSocket different version - by rlebeau - 06-18-2018, 04:51 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)