从VB 2010传递到C#的字节数组设置为null - 任何想法?

时间:2013-03-26 13:35:41

标签: c# vb.net-2010

我正在Vb 2010中编写一个程序,该程序调用包含在用C#编写的dll中的类。这是我正在调用的.DLL函数:

public void sendCHMessageFunction(byte[] DMXvalues, int functionCode)

以下是我在VB中定义它的方法(现在已根据某些建议将其删除):

Public Declare Sub sendCHMessageFunction Lib "BandShow.dll" Alias "sendCHMessageFunction" (ByVal DMXValues As Byte(), ByVal functionCode As Integer)

这是我的测试功能:

Private Sub Test_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' Create a new object
    oFS = New FS_Go_Monkey.sendMessageClass()

    Dim dmxBytes As Byte() = StrToByteArray("00verse3.chb")
    For Each item In dmxBytes
        Console.WriteLine("Bytes: " & item)
    Next

    ' Load named sequence (verse3.chb) on to number cue (00)
    oFS.sendCHMessageFunction(dmxBytes, 5)

End Sub

这是将字符串转换为字节数组的函数:

Public Shared Function StrToByteArray(ByVal str As String) As Byte()
    Return System.Text.Encoding.Default.GetBytes(str)
End Function

现在通过调试器我可以看到整数值被正确传递但是字节数组是null但我可以在它发送之前打印出它的值,所以在发送和接收字节数组之间的某个地方变为空。

我可以调用库中接受整数参数的其他函数,那些工作正常,那么VB和C#如何定义或处理字节数组有什么区别?

VB 2010和C#特别不是我的强项,任何专家都可以发现任何明显的错误吗?

提前致谢!

0 个答案:

没有答案