2016-02-16 3 views
1

Самопроизвольно, VB6 IDE замерзает около 2-3 минут , когда Intellisense пытается отобрать список участников.Что вызывает зависание Intellisense в VB6 IDE?

Например, если вы наберете

Dim i As 

как только вы нажмете пробел после "As", она замерзает.

Под «замораживанием» Я имею в виду, что пользовательский интерфейс IDE становится полностью невосприимчивым. Но ошибок нет, и он не «сбой» сам по себе. Если оставить его в покое, он в конечном итоге снова начнет работать.

Я работаю над большим проектом, фактически 4-5 проектов в группе. Все настроены на использование бинарной совместимости. Но это, казалось, происходило как шаг изменения, а не постепенное ухудшение медлительности.

Я видел подобные отчеты в Google Groups discussion и, возможно, также на microsoft.public.vb.general.discussion, но ни один из них не имел убедительного решения.

ответ

1

Возможно, это было вызвано несогласованностью двоичной совместимости.

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

В конце концов я вспомнил, что внес изменения, которые разбили bincomp, но оставили настройку проекта только бинарной совместимостью, так как при запуске группы можно игнорировать (или так я думал!)

Выполнение настроек проекта и выключение bincomp для измененного проекта, казалось, освободили Intellisense.

+0

Опубликовать это как потенциальный ответ, так как я не мог найти ссылку на это в другом месте в Интернете. Любопытно, если другие нашли это для работы и/или других решений ... – DaveInCaz

+1

Человек, я слишком долго использовал VB 6. Что такое «двоичная совместимость»? Это настройка уровня проекта? Что оно делает? –

+0

Cody, двоичная совместимость была методом, используемым для обеспечения того, чтобы при каждой перекомпиляции DLL компилятор VB6 сохранял одинаковые значения идентификатора COM для интерфейсов/классов в DLL. Я подозреваю, что это относится к этому вопросу, потому что, когда bincomp изменяется, возможно, IDE с трудом отслеживает, какие идентификаторы он должен использовать в списке Intellisense. – DaveInCaz

0

Для меня это всегда показатель несовместимости. Я узнал, что как только это произойдет, выберите «Запустить | Начать с полной компиляцией». Это приводит к тому, что VB6 идентифицирует ошибку для меня, которую я затем исправляю, и проблема сразу исчезает.

В качестве примера этим утром я испытал это. Я выбрал Run | Start With Full Compile - который сказал мне: «Ошибка компиляции: имя конфликтует с существующей библиотекой модулей, проектов или объектов». Это произошло потому, что я только что добавил новый класс с тем же именем, что и существующий Public Enum - это большой проект! Я переименовал свой новый класс и вернул, intellisense, резервное копирование и запуск.

Кроме того, иногда у вас может быть несколько ошибок. Продолжайте использовать Run | Начните с полной компиляции, чтобы идентифицировать их до тех пор, пока все не будут решены.

Дополнительно, иногда при запуске последующих Run | Начните с операций полной компиляции. VB6 сообщит вам об ошибке, которую вы только что исправили. Это, очевидно, проблема кэширования где-то в VB6. Если это произойдет, сохраните, закройте и запустите VB6. Затем повторите прогон Run | Начните с операции полного компиляции, чтобы увидеть ошибку.

Кроме того, иногда вам просто нужно сохранять, закрывать и снова запускать.

Вышеупомянутые работы для меня каждый раз.

Смежные вопросы