如何在vb6中定义字节数组并使用Winsock发送它

时间:2017-02-04 18:44:23

标签: arrays vb6

在c#中它看起来像是:

Byte[] ulaznipodaci = new Byte[] { 0x08, 0x3F, 0x20, 0x03, 0x00, 0x00, 0x05, 0x00 };
sck.Send(ulaznipodaci);

我需要在vb6中使用这种代码。我试过了:

Dim ulaznipodaci() As Byte
ulaznipodaci = Array(&H8, &H3F, &H20, &H3, &H0, &H0, &H5, &H0)
Winsock2.SendData ulaznipodaci

但是这段代码在ulaznipodaci = Array(&H8, &H3F, &H20, &H3, &H0, &H0, &H5, &H0)

行上给出了错误

说:运行时错误' 13': 类型不匹配。

我搜索谷歌但无法找到任何东西。请帮助,我在vb6中有点新鲜。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

在VB6中,您必须定义数组的边界,然后分别填充每个项目:

Dim ulaznipodaci(7) As Byte 
'// VB6 array is zero based unless you specify lower to upper bounds

ulaznipodaci(0) = &H8
ulaznipodaci(1) = &H3F
ulaznipodaci(2) = &H20
ulaznipodaci(3) = &H3
ulaznipodaci(4) = &H0
ulaznipodaci(5) = &H0
ulaznipodaci(6) = &H5
ulaznipodaci(7) = &H0

如果以后需要添加更多项目:

ReDim Preserve ulaznipodaci(8)

ulaznipodaci(8) = &H0

答案 1 :(得分:0)

..或者例如存储在字符串中然后在循环中读取

St =“& H8,& H3F,& H20,& H3,& H0,& H0,& H5,& H0”

表示i = 1到N

pos =(i-1)* 6'poition&  ulaznipodaci(i)= mid(St,pos,4)'我们不需要“,”和空格