Address and name spaces
This page applies to Harlequin v13.1r0 and later; and to Harlequin MultiRIP but not Harlequin Core
A DLL must export its names to the outside world explicitly. This means you do not have to worry about name clashes between names you use and names already in use by the RIP or another plugin: the only name exported by your DLL is PLUGIN
.
If a plugin uses functions from another DLL, that DLL will itself export names. The subordinate DLL is either loaded explicitly, using a call to LoadLibrary
in the plugin, or implicitly, by a reference in the plugin to a function exported from the subordinate DLL. In the latter case, the subordinate DLL must have been identified to the plugin at link time. In either case, the names are shared only between the calling DLLs and the called DLLs, and cannot conflict with any other parts of the system.
Note : Win 64 plugins cannot use DLLs and device drivers built for Win 32 and vice versa.
In some circumstances, a rogue plugin could overwrite data which is subsequently written to a file somewhere in the SW
directory. If this happens, restarting the RIP or rebooting the machine might not cure a corruption problem, and a completely clean SW
directory may be required.
Resources (from the .rc
file) are identified by number. The numbers are usually assigned by Visual Studio (or whatever), but can be assigned manually if required. It is only necessary to uniquely identify each top-level resource (dialog or icon) within the plugin, but it is conventional for all the dialog elements within one resource file to be uniquely numbered, and Visual Studio does this. Resources from one plugin, or the RIP itself, cannot be confused with resources from another.