我是 C# 的新手,我正在尝试这个 COM 互操作而不添加引用。(互操作程序集)
我有一个 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);
谢谢,约翰