Приложение VB6 исчезает без следа: изменится ли переключение между PCode и Native Code?

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

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

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

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


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

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

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

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

1 ответ

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

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

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

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

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

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

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

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

Другие вопросы по тегам