我是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);
谢谢, 约翰