C# 接收 VB6 DLL的字节数组,如何避免

C# 接收 VB6 DLL的字节数组,如何处理?
vb6 代码

Public Function vb_function(com As Integer, str As String) As Byte()
vb_function = head2()
End Function

c#

byte[] i2 = (byte[])led.vb_function(ref com_port, ref str);

c#这边这样写报错,提示说不能将System.Byte[]转换为System.Byte[*]

------解决方案--------------------
VB code
Public Function foo() As Byte()
    Dim a(2) As Byte
    a(0) = 1
    a(1) = 2
    a(2) = 3
    foo = a
End Function

------解决方案--------------------
如果C#确实不能处理这个safeArray返回结果的话,办法应该还是有的的:如果没有什么性能要求的话,为什么不再用vb6把你的这个函数封装成返回字符串,然后再想办法在C#中调用,处理回成字节数组呢?