我有一个我在.NET中创建的COM dll。我通过silverlight访问它。我遇到的问题是我将一个byte []传递给COM dll,但它似乎无法正常工作。我已经尝试将其标记为[In] [Out]而没有运气。
void LoadData(byte[] data)
这就是我的功能。它在COM端加载数据很好,但它不能恢复到silverlight。
答案 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)
{
}