We sometimes get a question about the differences between the VO and Vulcan dialect.
In the table below we have tried to list these differences
|Keyword abbreviations||Supported for all 'old' keywords for 4 letters or more. See table on https://www.xsharp.info/help/x-keywords.html. All the keywords in the VO column may be abbreviated.||Only supported for
|String literals||String literals can be defined with single quotes and double quotes:
"This is a string"
'This is a string with an embedded double quote "'
|String literals can only be defined with double quotes|
|Char literals||Must use single quotes prefixed with 'c', e.g. c'A'||Single quotes, the 'c' prefix is optional, e.g. 'A' and also c'A'|
|PSZ indexer||PSZ indexing is 1 based||PSZ indexing is 0 based (this is actually a bug in Vulcan that we are emulating)|
|MemVars (PUBLIC, PRIVATE)||Yes (in a future release)||No|
|Single line comments||Uses both // and &&||Only // is supported.
&& is a synonym for .AND.
|Compiler macros||defines __DIALECT_VO__ and __VO__||defines __DIALECT_VULCAN__ and __VULCAN__|
Something else that needs to be mentioned: if you switch from the Vulcan runtime to the X# runtime, please remember to remove the #include statements for the Vulcan header files, such as VOWIn32ApiLibrary.vh)
The values in these header files are now stored as defines (constants) in the VO SDK assemblies, such as VOWin32APILibrary.dll and also in the runtime assemblies (for values from VOSystemLibrary.vh).
Removing the header files will most likely improve the compilation speed.