我有一个在 .NET 中创建的 COM dll。我正在通过 silverlight 访问它。我遇到的问题是我将一个 byte[] 传递给 COM dll,但它似乎无法正常工作。我尝试将其标记为 [In][Out],但没有成功。
void LoadData(byte[] data)
这就是我的功能的样子。它可以在 COM 端正常加载数据,但不会将其返回到 silverlight。
我有一个在 .NET 中创建的 COM dll。我正在通过 silverlight 访问它。我遇到的问题是我将一个 byte[] 传递给 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)
{
}