我正在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#特别不是我的强项,任何专家都可以发现任何明显的错误吗?
提前致谢!