什么是winsock.index?

时间:2012-11-06 17:41:56

标签: vb.net vb6 winsock vb6-migration

我已经获得了一个VB6程序转换为.NET,虽然我已经能够通过谷歌搜索找出大部分VB6细节,但有一个我根本不知道。使用了Winsock,但转换实用程序将其替换为AxMSWinsockLib.AxWinsock。旧代码引用了一个索引属性,AxMSWinsockLib.AxWinsock显然没有,但我无法弄清楚它在这里尝试做什么。有什么想法吗?

Public Function PortsOpen(ByRef colWinsock As Collection, ByRef objWinsock As Winsock, ByVal LocalIPAddress As String) As Boolean

Dim Counter As Long
Dim sWS() As String

'Initial to open com. port

Counter = 0

If colWinsock.Count >= objWinsock.Index + 1 Then
    sWS = colWinsock.Item(objWinsock.Index + 1)

1 个答案:

答案 0 :(得分:1)

在VB6中,您可以拥有一组控件,然后使用索引引用它们。 .Net

中不再存在此行为

我相信你的情况,旧的VB6使用了winsock阵列来促进与其他同行的沟通。

例如,如果VB6中的原始表单是通过添加WinSock控件设计的,然后将其名称更改为mySock,然后手动将其Index属性值设置为0,则变为mySock(0)

在程序的后期,您需要做的就是制作控件的另一个副本

Dim currentNumberOfWinSocks as Integer
currentNumberOfWinSocks = mySock.UpperBound
Load mySock(currentNumberOfWinSocks + 1)

因此,要将此逻辑更改为.Net,您必须通过从代码端完全声明Winsock变量数组来解决此问题,而不必转发设计控件。