Как сохранить старое приложение VB6, работающее в Windows Vista и Windows 7?

У меня есть старое приложение VB6, которое я все еще пытаюсь поддерживать. Несколько пользователей сообщили о странных катастрофических отказах при запущении приложения в Vista или Windows 7. Файлы журнала ничего не показывают после одного из этих катастрофических отказов, но клиенты сообщают, что в сообщении об ошибке был сказан "OLE что-то...", если они видели что-нибудь вообще.

Я никогда не мог воспроизвести эти катастрофические отказы при запущении программы на моих собственных полях Vista или Windows 7, таким образом, у меня нет по существу информации о том, какова проблема.

Мое подозрение - то, что это - проблема с их версиями одного или нескольких из многочисленного миллиарда DLLs, от которого приложение VB6 зависит. Приложение также использует lame_enc.dll, который представляет еще несколько зависимостей.

Я предполагаю, что это - типичная проблема с приложениями VB6 (хотя возможно, что я просто высосал как программист 10 лет назад). Есть ли некоторый волшебный installer/updater там, который удостоверяется, что все зависимости VB6 - то, чем они должны быть, чтобы приложение VB6 функционировало правильно?

6
задан Deanna 3 May 2012 в 13:16
поделиться

5 ответов

Один из вариантов - обратиться в техническую поддержку Microsoft. Среда выполнения VB6 полностью поддерживается в Windows 7. Возможно, вам придется заплатить за "инцидент поддержки": или это может быть бесплатно, например, если у вас есть подписка MSDN (хорошая идея получить ее).

1
ответ дан 10 December 2019 в 02:45
поделиться

Если Режим совместимости не работает, существует также Режим XP . Это виртуализирует всю среду виртуальной машины XP, но также позволяет ей взаимодействовать с ОС хоста. Однако он доступен только для Windows 7.

3
ответ дан 10 December 2019 в 02:45
поделиться

Попросите пользователя запустить приложение в режиме совместимости с XP . Просто перетащите ярлык на рабочий стол, щелкните правой кнопкой мыши, «Свойства». Затем на вкладке «Совместимость» установите для него значение «работать в режиме совместимости для:» и выберите «Windows XP (Service Pack 3)». А также «отключить масштабирование дисплея при высоких настройках DPI». Посмотрим, поможет ли это. Просто могло бы.

2
ответ дан 10 December 2019 в 02:45
поделиться

Я тоже проголосую за XPMode.

Однако, если у вас все еще есть проблемы, Dependency Walker - хороший бесплатный инструмент, который сканирует exe / dll / ocx и строит древовидную диаграмму всех зависимых модулей / dll. Даже без этой проблемы это полезно при устранении проблем с установкой.

http://www.dependencywalker.com/

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

0
ответ дан 10 December 2019 в 02:45
поделиться

В целом у нас было странное поведение с некоторыми клиентами, которые пытались запустить наше приложение в Windows 7. В одном случае главная панель инструментов приложения (стандартный элемент управления MSComctlLib.Toolbar ) была полностью пустой. (ни один из значков или разделителей не появился). Мы были озадачены. Программа не вылетела, значков просто не было. Ничего в журналах ошибок приложения, ничего в журнале событий Windows. Мы даже убедились, что приложение настроено для работы в режиме совместимости с Windows XP, но без кубиков. Насколько нам известно, были установлены и зарегистрированы правильные библиотеки DLL, и с тех пор мы запускали одно и то же приложение в той же версии Windows 7 без каких-либо проблем.

По иронии судьбы, незадолго до этого мы решили официально поддерживать Windows 7, в то же время заявив, что официально не будем поддерживать Vista (хотя некоторые клиенты запускают приложение в Vista без каких-либо проблем). Поначалу это может показаться странным решением, но есть две веские причины, по которым это имеет смысл:

  • На большинстве новых компьютеров будет предустановлена ​​Windows 7, и большинство клиентов, которые пропустили обновление до Vista из-за всего окружающего FUD они очень заинтересованы в обновлении с XP до Windows 7.

  • Windows 7 поддерживает XP Mode , который позволяет запускать приложения на виртуальной машине под управлением Windows XP SP3. Некоторые из наших клиентов пошли по этому пути, и ни один из них не сообщил о каких-либо проблемах с запуском нашего приложения таким образом.Поскольку вы запускаете свое приложение в реальной среде Windows XP, вероятность того, что что-то пойдет не так, намного меньше.

1
ответ дан 10 December 2019 в 02:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: