从技术上讲,您可以在应用程序中同时包含 X# 和 Vulcan 运行库。如果这样做,编译器会认为你想使用 X# 实现 XBase 类型(如 USUAL 和 DATE)。如果编译器找不到 XSharp.Core 和 XSharp.VO 程序集,那么它会认为你想将这些类型映射到 Vulcan 运行时类型。
因此,你可以混合使用。不过,如果你想调用 Vulcan 运行时 DLL 中的代码,你可能必须使用全限定类名或类型名。
请记住:X# 类型和 Vulcan 类型之间没有自动转换。
如果你想将 X# 变量转换为 Vulcan 变量,你可能必须先将其转换为中间类型。
调用 Vulcan 的 Left() 实现
LOCAL cValue as STRING
cValue := VulcanRTFuncs.Functions.Left("abcdefg",2)
如果您想将 X# usual 值转换为 Vulcan usual 值,请将其转换为 OBJECT
LOCAL xUsual as USUAL
LOCAL vUsual as Vulcan.__Usual
xUsual := 10
vUsual := (OBJECT) xUsual
对于日期,你也可以做类似的事情。在这种情况下,您应该将 X# Date 转换为 DateTime。
LOCAL xDate as DATE
LOCAL vDate as Vulcan.__VODate
xDate := ToDay() // 将调用 ToDay() 的 X# 实现
vDate := (System.DateTime) xDate