- Код: Выделить всё
'References --> подключить system32\MSWINSCK.OCX (Microsoft Winsock Control 6.0 (SP6)
Private WithEvents Winsock As MSWinsockLib.Winsock
Private Sub Form_Load()
Set Winsock = New MSWinsockLib.Winsock
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set Winsock = Nothing
End Sub
Все работает прекрасно, но заметил такую странность: динамически контрол создается только на тех машинах, где установлен непосредственно VB редактор, а на всех остальных... метод New генерит ошибку Run-Time ‘429’ о том, что ActiveX component can’t create object.
Проверял местонахождение MSWINSCK.OCX и его повторную регистрацию через RegSvr32 результатов не дали.
Тем не менее алгоритм с импортированным Winsock на форму стандартным образом работает на всех машинах без ошибок.
Здесь нашел две подобные темы...
http://bbs.vbstreets.ru/viewtopic.php?f=1&t=22326
http://bbs.vbstreets.ru/viewtopic.php?f=1&t=13298
но коды типа...
- Код: Выделить всё
Private WithEvents Winsock2 As Winsock
Private Sub Form_Load()
Set Winsock2 = Form1.Controls.Add("MSWinsockLib.Winsock", "Winsock2")
End Sub
...также не работают. Controls.Add генерит Run-Time ‘711’, вроде как строковое определение класса MSWinsockLib.Winsock неправильное. А определение типа MSWinsock.Winsock требует лицензию. Да и не то это все.
Подскажите, пожалуйста, в чем может быть ошибка относительно метода New?