C# 编程 COM 对象中的长类型在 VB6 中显示为不受支持的变体类型



我有一个用C#编程的DLL,我正在将其转换为COM对象以用于VB6应用程序。 有几个方法和属性定义为long类型,在 VB6 中访问时,最终显示为"不支持的变体类型"。 然后我注意到在 C# 中定义为:

void Load(long firstNumber, int firstCheckDigit, long lastNumber , int lastCheckDigit)

在我的 VB6 对象浏览器中显示为:

Sub Load(firstNumber As <Unsupported variant type>, firstCheckDigit As Long, lastNumber As <Unsupported variant type>, lastCheckDigit As Long)

显然,这种转换是将 C# int 类型转换为 VB6 Long类型,这对我来说不是问题。 但是,我确实需要在 C# 和 VB6 中long firstNumberlastNumber变量。 由于输入的某些值的大小,无法int后端上的变量。 有什么办法可以做到这一点吗? 还是 DLL 端的长类型与 COM 对象不兼容?

这是准确的,VB6 没有 64 位整数类型。

您需要使用 intdouble 来容纳它。 后者当然令人不快,但你确实从中得到了 15 位数字。

http://msdn.microsoft.com/en-us/library/aa263420%28VS.60%29.aspx <-- VB6 数据类型

http://www.completecsharptutorial.com/basic/data-types.php <-- C# 数据类型

未来的参考资料。 :)

最新更新