DLLs and Prototypes
Return to Introduction  Previous page  Next page
This page discusses some of the issues regarding the use of DLLs and prototypes, in particular the way the entity names are recognised and resolved.

If you just change the case of an entity VO does not change the case of the entity name. For example, if you first create an entity that starts with this line:

ACCESS AppendEDITABLE CLASS EnFieldSpec

VO creates an entity called EnFieldSpec:AppendEDITABLE:Access.

If you then go and change the case of the first line, e.g.

ACCESS AppendEditable CLASS EnFieldSpec

VO does not change the entity name - it is still EnFieldSpec:AppendEDITABLE:Access.

This entity name, EnFieldSpec:AppendEDITABLE:Access, is the one that is referenced inside a DLL, and the generated prototype AEF.

The way to get the entity name to change is to first change it to something else then change it to your desired case:

Change to new name:
ACCESS AppendEditableX CLASS EnFieldSpec

The entity name is now EnFieldSpec:AppendEditableX:Access.

Now change to old name with right case:
ACCESS AppendEditable CLASS EnFieldSpec

The entity name is now EnFieldSpec:AppendEditable:Access.

The PRG of prototypes produced by VOPP is created/updated when you use System Builder or Single App Build. The PRG is generated from the information supplied by VO and so the case of the entities always matches that in the DLL or prototype AEF.

NOTE 1: If you change the code in the DLL but do not use System Builder or Single App Build to re-create the DLL then the prototype PRG will not be updated. In other words, if you are making use of the prototype PRG you must ensure that the DLL is built using either System Builder or Single App Build so that the PRG is updated. Using VO only to build the DLL will not update the prototype PRG.

NOTE 2: If you manually edit a prototype that refers to an ACCESS you could have trouble. When the entity name for an ACCESS is created by VO, when the entity is saved, it ends in Access (note the case). If the entity is in a DLL it will be referenced by its entity name and is case sensitive. The prototype of the ACCESS also references the entity name and is also case sensitive. If you edit the prototype in the VO source editor the Keyword Case feature may change the entity name, forcing the trailing Access into ACCESS. This difference in case may then cause the loading of the DLL to fail because the prototype code is asking for an entity ending in ACCESS but the DLL has an entity ending in Access.

NOTE 3: The examples above refer to ACCESS but are also applicable to ASSIGN.


© Piko Computing Consultants, 1998-2002