Преобразование приложения для Windows, написанного на XP, в Windows 7 - PullRequest
2 голосов
/ 02 ноября 2010

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

Как обычно разработчики программного обеспечения переносят свой код / ​​приложения, написанные для одной версии ОС, скажем, Vista, на Windows 7?

Ответы [ 4 ]

3 голосов
/ 02 ноября 2010

Я продаю решение для автообновления (AutoUpdate +, второстепенный плагин) и поэтому имею большой опыт переноса приложений Windows в последние версии, но при этом все еще поддерживаю обратную совместимость. Перенос с Windows XP на Windows 7 может быть большой проблемой (при переходе с Windows Vista на Windows 7 практически не должно быть различий).

Window XP не важно, где находится ваше приложение, и поэтому программисты будут выгружать логику своего приложения и поддержки (файлы журналов, файлы конфигурации, профили пользователей и т. Д.) В одно и то же место в папке «C: \ Program Files \». , Переместите это приложение на Windows 7, и вы начнете находить некоторые необычные поведения. Для начала, вы заметите, что файлы, кажется, «исчезают». Вместо изменения файла журнала в общем расположении Program Files вы можете получить несколько отдельных копий для каждого пользователя в разделе «Совместимость / Program Files». Windows Vista / 7 представила виртуализацию файловой системы и теперь будет создавать отдельные пользовательские экземпляры файлов, чтобы гарантировать, что у каждого пользователя есть собственная защищенная копия.

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

Короче говоря, изменения в безопасности - самое большое различие между Windows XP и Windows Vista / 7. Лучше всего начать с того, чтобы отделить логику приложения (двоичные файлы) от поддерживающей логики, поместив последнюю в пользовательские каталоги. Некоторые приложения могут никогда не быть исправимыми, и вместо этого их можно заставить работать в режиме совместимости или запускать всегда в контексте учетной записи администратора - плохие обходные пути, но они могут подойти в вашей компании.

Саймон @ http://AutoUpdatePlus.com

1 голос
/ 02 ноября 2010

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

Во-вторых, сделайте так, чтобы оно выглядело и работало как приложение для Windows 7. Ваш джамплист пригоден для использования? Ваш эскиз? Вы получаете некоторые вещи бесплатно, вам нравится то, что вы получаете, или вы хотели бы взять контроль? Существуют ли очевидные выигрыши, которые вы могли бы использовать, например, кнопки с миниатюрами, задачи для списка переходов, наложения на панели задач и т. Д. Не удивляйте своих пользователей и не разочаровывайте своих пользователей. (Пример разочарования: VS 2008 и непристойные списки переходов, которые он предлагал. У них был повод быть выпущенным до Windows 7 - нет.)

В-третьих, воспользуйтесь преимуществами Windows 7, чтобы быть лучше, чем вы могли бы. Остановите опрос для сетевых подключений, создания файлов, подключения оборудования, включения и выключения питания переменного тока и т. Д. И узнайте, как получать уведомления о таких событиях. Добавьте поддержку касания сверх того, что вы получаете бесплатно. Поговорите с датчиком или GPS в первый раз, поскольку Windows 7 делает его проще, чем когда-либо. Такого рода вещи.

1 не является обязательным. 2 действительно не является обязательным, через год после выпуска Windows 7. 3 будет отличать вас, и я рекомендую, как только вы пройдете 1 и 2, вы посмотрите на это.

0 голосов
/ 10 августа 2011

Я немного прибегнул к поиску различий между XP и Windows 7, но у меня нет ссылок, описывающих, как внутреннее устройство 7 отличается от XP.Любые ссылки приветствуются.

Отчет API diff между XP и Vista: https://abi -laboratory.pro / compatibility / Windows_5.0_to_Windows_6.0 / x86_64 / abi_compat_report.html

Отчет API diff между Vista и 7: https://abi -laboratory.pro / compatibility / Windows_6.0_to_Windows_7.0 / x86_64 / abi_compat_report.html

Отчетыгенерируется инструментом abi-Compliance Checker .

enter image description here

0 голосов
/ 02 ноября 2010

По сути, Windows7 является 4-битной ОС и поэтому обязательно работает в среде с 64-битным процессором. XP имеет как 32-битные, так и 4-битные версии. Если ваше приложение предназначено для 32-битной версии XP, в этом случае основная миграция означает эффективную работу приложения на 4-битной ОС.

Основные шаги могут быть примерно такими:

  1. Сделайте его совместимым с 64-битной win7. Таким образом, вы можете просто скомпилировать код с машины win7 (на 64-битной). Если компиляция работает нормально, вы можете успешно запустить приложение.

  2. Первый шаг просто позволяет двигаться вперед. Но ваше приложение может быть неэффективным. В этом случае вам, возможно, придется пересмотреть код для любой конкретной реализации, связанной с 32-битной ОС, и обновить их, чтобы использовать преимущества 64-битной ОС.

Основным преимуществом 64-битной ОС является более высокая адресная способность (таким образом, доступ к большему объему оперативной памяти), а также кеширование и т. Д.

...