Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数组从vba传递到c#时,数据类型不匹配在哪里?_C#_Arrays_Vba_Arguments - Fatal编程技术网

将数组从vba传递到c#时,数据类型不匹配在哪里?

将数组从vba传递到c#时,数据类型不匹配在哪里?,c#,arrays,vba,arguments,C#,Arrays,Vba,Arguments,我的C#COM DLL有一个接受浮点数组和长整数数组的方法。它返回一个浮点值 从MS Access模块中的VBA中,我创建了一个single类型的数组和另一个long类型的数组,填充它们,创建DLL app.class对象,然后用这两个数组调用其方法。但是我得到了一个“类型不匹配”错误 下面是实际的代码,但很简单,因为我试图在添加“真实”代码之前解决通信问题 C#代码: VBA代码: Public Sub Test() Dim a1(0 To 0) As Single, a2(0 To

我的C#COM DLL有一个接受浮点数组和长整数数组的方法。它返回一个浮点值

从MS Access模块中的VBA中,我创建了一个single类型的数组和另一个long类型的数组,填充它们,创建DLL app.class对象,然后用这两个数组调用其方法。但是我得到了一个“类型不匹配”错误

下面是实际的代码,但很简单,因为我试图在添加“真实”代码之前解决通信问题

C#代码:

VBA代码:

Public Sub Test()
    Dim a1(0 To 0) As Single, a2(0 To 0) As Long, sng As Single
    a1(0) = 5
    a2(0) = 10
    Dim o As Variant
    Set o = CreateObject("MyApp.MyClass")
    sng = o.JustTesting(a1, a2)
    Debug.Print CStr(sng)
    Set o = Nothing
End Sub
数据类型不匹配在哪里?

VBA中的A仅为32位,与C#中的
int
相同。因此,您的方法需要获取
int的数组

public float JustTesting(float[] Array1, int[] Array2)
{
    return 96.0F;
}
public float JustTesting(float[] Array1, int[] Array2)
{
    return 96.0F;
}