我有一个在.NET中创建的COM dll。我正在通过银光访问它。我遇到的问题是我正在向COM dll传递一个字节[],但它似乎无法正常工作。我尝试将其标记为[In][Out],但没有运气。
void LoadData(byte[] data)
这就是我的函数的样子。它在COM端加载数据正常,但不会返回到silverlight。
尝试在使用 COM 互操作时通过引用传递数组:
void LoadData(ref byte[] data)
在这里研究数组的默认封送处理可能会很有用。
如果这对您没有帮助,请为您的 COM dll 生成一个类型库(例如使用 tlbexp)。 当您看到正在调用的函数的 IDL 定义时,您可能会清楚地知道为什么您的 byte[] 参数不起作用。 如果仍然不清楚,请在此处发布IDL,它至少会给我们更多线索。
byte[] data = new byte[30]
LoadData(Convert.toBase64String(data.Tostring()));
void LoadData(byte[] data)
{
}