.NET COM Dll通过引用传递byte []

时间:2012-06-13 15:58:43

标签: .net silverlight dll com byref

我有一个我在.NET中创建的COM dll。我通过silverlight访问它。我遇到的问题是我将一个byte []传递给COM dll,但它似乎无法正常工作。我已经尝试将其标记为[In] [Out]而没有运气。

void LoadData(byte[] data)

这就是我的功能。它在COM端加载数据很好,但它不能恢复到silverlight。

3 个答案:

答案 0 :(得分:1)

使用COM Interop时尝试通过引用传递数组:

void LoadData(ref byte[] data)

答案 1 :(得分:0)

研究数组here的默认封送处理可能很有用。

如果这对您没有帮助,请为您的COM dll生成一个类型库(例如,使用tlbexp)。当您看到正在调用的函数的IDL定义时,您可能会明白为什么byte []参数不起作用。如果仍然不清楚,请在此处发布IDL,这至少会为我们提供更多线索。

答案 2 :(得分:-2)

byte[] data = new byte[30]
LoadData(Convert.toBase64String(data.Tostring()));


void LoadData(byte[] data)
{

}