Приложение 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 компиляций большого проекта с несколькими ссылками.
Как личный комментарий, когда это происходит, причина и решение кажутся бессмысленными и заставляют меня хотеть вырвать куклу вуду и потанцевать под дождь.