Портирование приложения C++ с XP на Vista/7

У меня есть приложение на C++, которое я написал для Windows XP, и я хотел бы перенести его для использования в Windows Vista/7. Он использует некоторые MFC (для последовательного ввода-вывода) и ATL (для WMI), но в основном использует старый добрый Windows API. О каких недостатках я должен помнить при переносе своего приложения? Спасибо.


person Jim Fell    schedule 10.12.2010    source источник


Ответы (3)


Вам, наверное, вообще ничего не нужно делать. В общем, приложения, написанные для XP, прекрасно работают в Vista и Windows 7. (Драйверы устройств и другой такой низкоуровневый код могут быть другой историей.)

У вас проблемы с запуском в Vista или Windows 7? Вы хоть пробовали?

Некоторые возможные ошибки:

  • безопасность (предполагает ли ваше приложение, что оно работает от имени администратора и имеет полный контроль над машиной?)
  • косметические проблемы (из-за изменений внешнего вида окон и элементов управления в Vista и 7)
  • жестко заданные пути к файлам/каталогам
  • гораздо больше пользователей используют 64-битные версии Windows Vista и 7, чем когда-либо использовали 64-битную XP. Таким образом, если у вас есть 32-разрядное приложение и вы динамически загружаете код (DLL, элементы управления ActiveX и т. д.), вы можете столкнуться с проблемами 32-разрядных и 64-разрядных версий.
person Kristopher Johnson    schedule 10.12.2010
comment
+1, Дополнительное примечание для тех, кто интересуется. Какое-то приложение раньше работало на XP, но не работало на 7: используйте эти подробные рекомендации по совместимости с Windows 7. Кроме того, если это чужое приложение, используйте режим совместимости И/ИЛИ вы действительно можете запустить приложение Windows XP в 7, если у вас Режим XP установлен => Он запускает XP на виртуальном ПК. Вы устанавливаете свое приложение в XP. Вы найдете свое приложение XP в стартовом меню 7! и в следующий раз запустите приложение (в стиле XP), не запуская XP снова! - person vulcan raven; 19.09.2012

Набор инструментов для обеспечения совместимости приложений поможет вам выявить проблемы, которые могут возникнуть при переносе вашего приложения на Vista/Win 7:

http://www.microsoft.com/downloads/en/details.aspx?familyid=c4a25ab9-649d-4a1b-b4a7-c9d8b095df18&displaylang=en

person Michael Burr    schedule 10.12.2010

Я бы поддержал предложение Майкла Берра использовать инструментарий AppCompat, так как он выявит большинство вероятных проблем. Некоторые общие правила:

Предполагая, что вы все равно делаете большинство из этих вещей правильно, я думаю, у вас не будет серьезных проблем с поддержкой Vista/Win7.

person the_mandrill    schedule 10.12.2010