Как сохранить старое приложение VB6 в Windows Vista и Windows 7? - PullRequest
6 голосов
/ 11 апреля 2010

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

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

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

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

Ответы [ 6 ]

2 голосов
/ 11 апреля 2010

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

2 голосов
/ 11 апреля 2010

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

1 голос
/ 18 декабря 2011

Попробуйте сторонний установщик, такой как Installshield. У меня есть приложение VB6, которое не установлено и не работает должным образом на Win 7 с использованием оригинального установщика, но я, когда я установил его в последней версии Installshield, теперь оно работает нормально.

1 голос
/ 12 апреля 2010

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

1 голос
/ 11 апреля 2010

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

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

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

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

0 голосов
/ 12 апреля 2010

Я тоже буду голосовать за XPMode.

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

http://www.dependencywalker.com/

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...