4

我有一个用 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类型转换为 VB6Long类型,这对我来说不是问题。但是,我确实需要firstNumberandlastNumber变量long同时在 C# 和 VB6 中。后端的变量不能是int因为输入的某些值的大小。有没有办法做到这一点?还是 DLL 端的 long 类型与 COM 对象不兼容?

4

2 回答 2

6

没错,VB6 没有 64 位整数类型。

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

于 2013-10-30T16:34:08.710 回答
0

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

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

未来的参考。:)

于 2013-11-06T18:48:27.493 回答