Приложение VB6 исчезает без следа: изменится ли переключение между PCode и Native Code? - PullRequest
0 голосов
/ 05 марта 2009

Я знаю, что эта тема была замерзла в новостных группах и есть сообщения на форуме для Африки - но я хотел, чтобы вы, эксперты, переполняли стек:)

Наше приложение VB6 иногда просто исчезает, когда пользователь что-то делает, и не выдает никаких ошибок, а также в журнале ошибок ПК!

Мне было интересно, слышал ли кто-нибудь об этом раньше на VB6 и что вы сделали, чтобы это исправить?

Я подумал, что, возможно, изменение всего кода с нативного на pcode может обеспечить большую стабильность?


Дополнительная информация:

  • Мы используем Mdac 2.8
  • True DB Grid 6.0e

Примечания добавлены в редакции:

  • Наше приложение очень большое, с 113 отдельными компонентами и скомпилированным размером 120 МБ (без встроенных изображений или чего-либо еще)
  • Наш слой представления создает объекты на лету, так что все запаздывает.
  • Мне не особо важна локальная производительность приложения VB6, поскольку, насколько я понимаю, оно не выполняет какой-либо серьезной обработки, поэтому производительность полностью ограничена нашей базой данных Oracle в центре обработки данных в 80 милях 300 пользователей - кошмар!

1 Ответ

1 голос
/ 05 марта 2009

Это имеет значение. Но не в пользу того или другого. Поскольку два метода не совсем одинаковы, они могут давать разные результаты с крайними случаями.

Поймите также, что описываемая мною проблема - это проблемы компилятора, а не ошибки программиста. Итак, вы действительно хотите убедиться, что это проблема. Мы проверяем это, сравнивая изменения с последней известной версией.

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

Когда возникает это редкое обстоятельство, единственный способ исправить это переупорядочить строки кода или вставить пустые строки, такие как i = i. Все, что заставит компилятор выдавать другую последовательность сборки или pcode. Тогда проблема уходит.

Было несколько случаев, когда мы делали это, успешно компилировали, возвращали обратно и успешно компилировали обратно. В этом случае мы думаем, что изменения реестра достаточно, чтобы заставить немного различаться набор двоичных файлов / pcode.

Вы также можете очистить реестр и локальную временную папку.

Мой опыт показывает, что это может происходить один раз в 1000–500 компиляций большого проекта с несколькими ссылками.

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

...