Microsoft Patch 958369 MS08-070 повредила мое Приложение VB6 (Несоответствие типов - динамично созданное управление)

Альтернатива:

s.substring(0, Math.min(2, s.length()))
6
задан Dylan Corriveau 12 May 2015 в 13:12
поделиться

4 ответа

Смотрите на "Описание свертки накопительного пакета обновления для пакета обновления Visual Basic 6.0 6 Расширенных Файлов Во время выполнения".

http://support.microsoft.com/kb/957924/

Это 30 декабря 2008 обновляет, должен удалить и заменить дефектное 9 декабря обновление системы защиты. Это, кажется, имеет дело и с 926 857 и с 957924.

958369, кажется, статья Visual FoxPro KB для того же дефектного обновления (9 декабря). VFP использует много средств управления VB.

2
ответ дан 17 December 2019 в 18:20
поделиться

Вы, возможно, должны добавить управление к панели инструментов так, чтобы проект VB6 и форма имели надлежащую ссылку на него. Необходимо будет сделать это, даже если у Вас на самом деле не будет его на форме во время проектирования.

Со ссылочным VB может не иметь всей информации, должен был разрешить методы и свойства управления во времени выполнения

1
ответ дан 17 December 2019 в 18:20
поделиться

Так как интерфейсные подписи изменились, необходимо будет удалить ссылку компонента из проекта, сохранить и закрыть VB6 полностью, не зарегистрировать старое управление, зарегистрировать новую версию от патча, вновь открыть проект и включить компонент назад. Если Вы сделаете это, то Вы, скорее всего, потеряете поддержку машин, которые не имеют патча установленным (или необходимо будет установить его как часть пакета установки),

Конечно, можно всегда объявлять ссылку "Как Объект", если это легче, но производительность отбросит немного, и Вы потеряете поддержку WithEvents

0
ответ дан 17 December 2019 в 18:20
поделиться

Я столкнулся с аналогичной проблемой при динамическом создании не встроенных элементов управления в VB6. Возможно, Winsock больше не считается внутренним. Попробуйте объявить свою переменную как VBControlExtender вместо Winsock, как показано ниже:

Option Explicit
Dim WithEvents objExt As VBControlExtender

Private Sub LoadControl()
   Licenses.Add "MSWinsockLib.Winsock", "xydsfasfjewfe"
   Set objExt = Controls.Add("MSWinsockLib.Winsock", "myCtl")
End Sub

Private Sub extObj_ObjectEvent(Info As EventInfo)
   ' Program the events of the control using Select Case.
   Select Case Info.Name
     Case "DataArrival"
       ' Do stuff
   End Select
End Sub

См. эту статью MSDN для получения дополнительной информации.

0
ответ дан 17 December 2019 в 18:20
поделиться