Targets and DLL Management

Parent Previous Next

Targets and DLL Management.

When we compile and build bytecode it is always targeted at being executed by one particular VM DLL. We refer to this as Single Target Compilation. We use the term VM DLL even though the physical target can include both a 32 bit and a 64 bit DLL.

These four files are closely related and together constitute a target:

The evaluation DLL-files - included as part of the downloaded SCRAMBLECODE installation files - can be targeted by anyone, because the private key for the Evaluation License is available to everyone.

But any other VM DLL can only be targeted by the developer, who possess the private key that matches the public key embedded in the VM DLL.

Managing Targets.

The IDE includes a Target Manager in the Compile Menu to define your targets.

The picture shows a system generated definition of the default EVALUATION target.

You can create and manage multiple targets - one target for each public key in your registered LicenseID.

When you leave the form using the OK button, all targets are saved to a file targets.xml as defined by the Options.

Key Names.

The PrivateKey file contains a KeyName property for every generated key pair. These key names can be edited using a simple text editor. Each key name could for example identify a particular line of products.

The key name is used here to select a particular public key to embed in the VM DLL for the current target. If the key name is later changed in the PrivateKey file, it must be changed here as well for the target in question.


The IDE will automatically create the EVALUATION target and identify the four files which default accompany SCRAMBLECODE for evaluation purposes.

If you have not performed the recommended Installation (a simple unzip with all files located in one directory), please select the files manually to complete the setup of this target. Missing files are easy detectable by enabling the check-box Show Missing Files in Red.

The EVALUATION target is mandatory and should not be deleted. SCRAMBLECODE uses bytecode execution for certain security related tasks which requires the existence of this target.

The downloaded installation files contains a PrivateKey file that include numerous keys. These can be used to create and test additional targets by generating additional VM DLL files. It allows you to test using keys with higher bit size.


The system generated EVALUATION target must always use the RSA 2048 Bit Default Evaluation Key as presented in the picture. Do not select another key pair for this target!

Creating Your Target.

Once you have acquired a new registered LicenseID as described here, you are ready to create your own unique target and DLL files.


Now this new target can be selected for your projects in the Project Properties as the compilation target, and the VM DLL files can be deployed royalty free to execute your generated bytecode. The target is also ready to use with the test bench and debugger.

Updates and Redeployment.

It is extremely important that the compiler version on the IDE Start Page matches the execution engine inside the VM DLL. If you download and use newer versions of the SCRAMBLECODE software please pay close attention to this. When in doubt you can use the test bench which will check the compiler version of the loaded VM DLL before trying to execute any bytecode.

Next is described what to do, if you have downloaded a new version (installed in a new directory) and the compile version has changed:

TIP: It is advisable to let your host application always check the compiler version of the VM DLL using this API function.