Skip to content

Why do some selected VMs disappear when I reload a project?

Code Virtualizer includes only the virtual machines that the protected application needs. You can select one VM for the protection boot code and assign other VMs to old-style VM macros by right-clicking a VM name.

For example, suppose the application contains no VM macros. You select VM_TIGER_WHITE for the protection boot code and also select VM_FISH_WHITE and VM_FISH_RED. The two FISH VMs would never execute because the boot code uses VM_TIGER_WHITE.

When you reload the project, Code Virtualizer keeps VM_TIGER_WHITE and removes the two unused VMs.

To use specific VMs in an application, insert their macros in your source code. For example:

main()
{
    VM_FISH_BLACK_START
    // your code
    VM_FISH_BLACK_END

    VM_DOLPHIN_WHITE_START
    // your code
    VM_DOLPHIN_WHITE_END
}

Code Virtualizer detects the FISH_BLACK and DOLPHIN_WHITE macros and includes both VMs in the protected application.

In most cases, you do not need to select VMs manually. Code Virtualizer includes the required VMs and avoids increasing the application size with unused ones.