Host and plugin should be compiled with Hydra_VCL package

I’m trying to migrate a project from XE8 to Athens.
Remobjects 8.3 to 10.

I have already made all the code changes where there were build problems.

However, when I run the system, and it loads the modules, (in the first module) it displays this message:


Debugger Exception Notification

Project EQMSERVIDOR.exe raised exception class EHYException with message ‘Cannot load EQMSERVIDOR01.dll as VCL module. Host and plugin should be compiled with Hydra_VCL package’.

Break Continue Copy Help

Would anyone know why?
I’m working on a virtual machine with just Atenas installed with the remobjects components and other necessary components.

Hydra for Delphi relies on Hosts and Plugins being compiles with packages, so that a shared copy of the RTL, VCL and other core Delphi libraries is used by both the host and the plugins.

If either is compiled to not use packages, it means the host .ee and.or the plugin .dlls embed their own unique copy of the Delphi RTL and VCL in them. In addition to being wasteful, memory wise, this can lead to incompatibility, because a lot of type checks (such as “if x is TStringList then”) internally rely on comparing the pointer addresses of the type definitions.

If each host/plugin has their own unique copy of these types, that can (will) fail. For example, say you pass a class created in the host into a plugin. if the plugin now compares the against a known type, it fails because the object references the host’s version of that type’s address, while the plugin expects its own version.

hth,
marc

Hi,

This error is raised when you are trying to load plugin as VCL module that was compiled w/o runtime packages.

if you don’t use interfaces from Hydra.VCL.Interfaces.pas, you can try to load your plugin as cross-platform one with LoadUnmanagedCrossPlatformModule method. in this case you don’t need runtime packages but VCL specific interfaces (like IHYVCLToolbarController, IHYVCLToolbar, etc) won’t be supported.

Confirm and work very well!

Hi have an (very big) old app in Delphi 7 and I started to migrate in Delphi 12.x. I carry out the migration with hydra cross-platform modules (delphi 7 host - delphi 12.x plugins) and everything works perfectly

1 Like