Search code examples
delphidelphi-7jvcl

Procedure Entry Point invalid in JVCL (jclUnitVersioning)


I've just installed XE2 together with Jedi 3.45. this appears to have broken my Delphi 7 installation!

I have uninstalled XE2 and Jedi, I have cleaned up and removed all invalid paths bpl, dcu and source. However when I reinstall Jedi 3.4x I get a series of errors on starting D7, all along the lines of:

Procedure Entry Point @$xp$34jclUnitVersioning @TUnitVersionInfo could not be located in dynamic link library jcl70.bpl

I have run tried running a repair install of D7 and various (earlier) versions of jedi but can't seem to fix the problem.

I need D7 + JCL/JVCL in order to maintain our main Group Software Application.

Any and all help urgently required.

Paul


Solution

  • You missed something. :) Search your entire drive for any of the JCL/JVCL files (including .bpl, .dcp, .dcu). You have one that doesn't match up somewhere. Note that the mismatched file can be in the Windows System/System32/SysWOW64 folders as well as somewhere related to Delphi if they're used by the IDE at designtime or as runtime packages.

    JCLUnitVersioning is in the JCL160 package for XE2, I think. Your D7 project is looking in jcl70, which would be the Delphi 7 version of that package. This means that the IDE is looking for one compiled version, but finding a different one. (It's probably that the install of 3.45 rebuilt and replaced the packages for D7 when the ones for XE2 were compiled.)

    When you rolled back the install of JVCL to the previous version, did you also revert back to the corresponding version of JCL? The newer JVCL install would have probably required a later version of JCL and installed it also.