Com Interop(从C#传递数组)

时间:2013-08-22 23:12:10

标签: interop com-interop

我是C#的新手,我正在尝试使用COM Interop而不添加引用。 (Interop Assembly)

我有一个C ++ COM类来计算这样的平均值..

CoClass功能

[id(2)] HRESULT Average([in, size_is(count)] LONG* Array, [in] LONG count, [out,retval] LONG* pResult);

C#代码

从C#我试着将此函数调用如下,但是当我尝试像下面这样调用时,我得到一个异常。 注意:该CoClass中的所有其他函数在C#中工作正常。只有当数组出现抛出异常时才会出现。

[Guid("FA282FAC-A5EE-4A43-AF0B-FB150576DF75"), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]

public interface ICalc
{

    int Average([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] long[] values, int count);

}

long[] values = { 1, 2, 3, 4, 5 };
long ret1 = refToCalc.Average1(values,5);

谢谢, 约翰

0 个答案:

没有答案