Migrating plugins from Iguana 3.3.2 to Iguana 4.5 and above

There are a few moving parts when it comes to migrating what were called Client Executables in Iguana 3.3.2 to Iguana 4.5 and above.

This page notes what they are and some of the gotchas. Most of the headaches that can occur are from mismatching the required DLL libraries especially if you are also making the transition to a 64 bit windows version.

Two core libraries are:

  • IGC.dll – this is a core DLL written in C which implements the protocol used by the plugins to communicate to Iguana.
  • CHM_LIB3.dll – this is core DLL of Chameleon which is often a dependency of the plugins typically written by customers.

Another important library is the IGC_csharp.dll which is a C# stub library using the Iguana 3.3.2 plugin interface. Your plugins probably have this dependency already. It should be able to talk to the new IGC.dll shipped with Iguana 4 and above since we were very careful to maintain binary compatibility in this interface.

A good trick with managing ‘DLL hell’ with these libraries is to:

  1. Make sure that the directories that contain the executables do not contain the IGC.dll and CHM_LIB3.dll DLLs.
  2. Instead use the ability of Iguana to locally configure environmental variables to edit the PATH variable to have the Iguana directory on it so that the correct IGC.dll and CHM_LIB3.dlls are loaded.

See Environment Variables for the complete information on how to configure environmental variables.

The beauty of this technique is that it avoids the need for global changes to the configuration of the machine. The environmental variable changes are all local to the instance of Iguana. These screen shots should be of help:

This screen shows editing the PATH variable, putting in the special $(chameleon_dir) and $(iguana_dir) variables.  Notice the preview shows the full resolution of the environmental variables:

And what they are resolved to when we stop editing the Path variable:

We still have to deal with the issues that occur when you have to deal with a 64 machine.

You will need to use the 64 bit Chameleon runtime. You may also find this link about creating 64 bit stubcode helpful.

Note: both these links take you to the old version 4 manual.

Leave A Comment?