Technically, it is possible to include both the X# and the Vulcan runtime libraries in your application. When you do so, the compiler will assume that you want to use the X# implementations for the XBase types such as USUAL and DATE. If the compiler does not find the XSharp.Core and XSharp.VO assemblies, it will assume that you want to map these types to the Vulcan runtime types.
Even though you can mix things, if you want to call code in the Vulcan runtime DLLs, you may have to use the fully qualified classnames or typenames.
And remember: there is no automatic translation between the X# types and Vulcan types.
If you want to convert an X# variable to a Vulcan variable, you may have to cast it to an intermediate type first.
Call Vulcans implementation of Left():
LOCAL cValue as STRING
cValue := VulcanRTFuncs.Functions.Left("abcdefg",2)
If you want to convert an X# usual to a Vulcan usual, cast to OBJECT:
LOCAL xUsual as USUAL
LOCAL vUsual as Vulcan.__Usual
xUsual := 10
vUsual := (OBJECT) xUsual
For dates, you can do something similar. In that case, you should cast the X# date to a DateTime:
LOCAL xDate as DATE
LOCAL vDate as Vulcan.__VODate
xDate := ToDay() // will call the X# implementation of ToDay()
vDate := (System.DateTime) xDate