#vb6
#vb6
Вопрос:
У нас есть устаревшее приложение VB6, которое имеет решающее значение для нашего бизнеса. Мы работаем над переписыванием его в .NET, но это займет много времени.
За последние несколько лет у этого старого приложения VB6 были проблемы со сторонними элементами управления, которые мы приобрели около 10 лет назад, когда мы писали приложение VB6. Эти проблемы становятся все хуже. Например, приложение внезапно завершит работу. Когда это произойдет, я проверю журнал событий пользователя, чтобы узнать, что произошло, и почти во всех случаях один из сторонних элементов управления вышел из строя, а вместе с ним и приложение. Иногда это приводит к потере данных пользователем.
Мы сделали все возможное, чтобы смягчить это, и это очень помогло, но не смогли предотвратить все случаи этих сбоев. Несколько лет назад, когда эта проблема впервые начала проявляться, я провел некоторое расследование причин возникновения этих сбоев, и я помню, как некоторые люди говорили, что некоторые из этих проблем были вызваны пакетом обновления, в котором находилось наше приложение. Наше приложение VB6 в настоящее время находится в пакете обновления 5. Я узнал, что Microsoft выпустила пакет обновления 6 для VB6, и тогда спросил об этом, и люди посоветовали мне не обновляться до SP6 для VB6 из-за проблем с несовместимостью с нашими сторонними элементами управления, поэтому мы оставили все в покое.
Однако теперь эти сбои происходят чаще. Нам пришло в голову, что, возможно, проблема в том, что некоторые недавние обновления Windows, возможно, уже переместили VB6 в SP6. Или, возможно, совет, который мне дали много лет назад о том, чтобы оставить наше приложение на SP5 для VB6, был неправильным. В любом случае, нам нужно выяснить, можем ли мы перевести наше приложение на SP6 для VB6, и тем самым, мы надеемся, уменьшить, если не устранить, количество фатальных сбоев, которые дают нам эти старые сторонние элементы управления.
Вот список сторонних элементов управления, которые в настоящее время использует наше приложение. Кто-нибудь знает, будут ли эти элементы управления работать с VB6 SP6?
- Библиотека просмотра отчетов Crystal ActiveX 11.5
- Дизайн дизайнера и библиотеки времени выполнения Crystal Reports ActiveX Designer 11.5
- Библиотека времени выполнения дизайнера ActiveX Crystal Reports 11.5
- Контроль проверки орфографии WSpell версия 1.0
- Sheridan Data Widgets 3.0 A (в частности, их элементы управления таблицей данных, списком данных и выпадающими списками данных. Именно эти элементы управления лежат в основе всех фатальных сбоев нашего приложения.)
Комментарии:
1. Я думаю, что обновление не решит проблему. Иногда покупать элементы управления не обязательно лучше. у меня была такая же проблема, поэтому я решил найти другие варианты, поэтому основал ontrols как vsflexgrid, ну, вариант, который в моем случае решил проблему.
2. В VB6 есть элементы управления DAO и ADO, которые заменяют эти старые виджеты Sheridan, хотя модернизация может потребовать небольшой работы.
Ответ №1:
Я использовал WSpell с VB6 SP6. Crystal всегда был довольно тесно связан с Microsoft, поэтому я ожидаю, что это сработает. Шеридан, ну, я не могу тебе здесь помочь.
Тем не менее… зачем спрашивать? Просто протестируйте это. Вы всегда можете выполнить откат, если это не сработает, верно?
Ответ №2:
Я не могу дать никаких советов по поводу элементов управления Sheridan, но мы используем Crystal ActiveX Report Viewer и библиотеку времени выполнения 10.0 с нашим приложением VB6 (с использованием SP6), и у этого нет проблем со сбоями.
Ответ №3:
У нас есть несколько приложений VB6, использующих Sheridan Data Widgets 3.1, в основном grid, но в наши дни выпадающий список тоже немного. В Vista и 7 все работало нормально, но как только несколько человек обновились до 10 (мы проигнорировали / избежали 8), проблемы возникли быстро.
Загрузка сетки начала приводить к сбою приложения, но это было странно. Я мог бы вызвать функцию загрузки (она заполняла сетку) при первоначальном отображении информации, и это было нормально. Другие функции изменяли данные и перезагружали сетку, и большинство работало, за исключением одного. В этом нет ничего особенного или необычного, но grid это особенно не понравилось. Что раздражало, так это то, что если я добавлял MsgBox каждый раз перед добавлением строки в сетку (мы используем режим добавления), глупая вещь не зависала.
Однажды возникла аналогичная проблема с сетками, обнаружил, что мне пришлось переключить фокус на новую форму, которая появляется менее чем на секунду. Может быть, это как-то связано с тем, как рисуется сетка? Или, судя по функции, которая вызывает ее сбой, когда другие этого не делают, возможно, определенные последовательности событий вызывают сбои.
Просматривая журнал событий в Win10, он сообщает мне, что имя модуля сбоя USER32.dll , код исключения чередуется между 0xc0000005 и 0xc000041d.