Каковы основные различия между программированием для Windows XP и для Vista?

StackOverflow https://stackoverflow.com/questions/22674

  •  09-06-2019
  •  | 
  •  

Вопрос

С точки зрения разработчика настольных приложений, есть ли какая-либо разница между разработкой для Windows XP и разработкой для Windows Vista?

Это было полезно?

Решение

Пользовательский интерфейс

Глядя на Рекомендации по работе с Windows Vista вы можете видеть, что они изменили многие элементы пользовательского интерфейса, о чем вы должны знать.Некоторые важные моменты, на которые следует обратить внимание:

64-разрядный

Vista имеет 64-разрядную версию, и хотя XP тоже, ваши пользователи с большей вероятностью будут использовать Vista 64, чем XP 64.Теперь вам придется иметь дело с:

UAC

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

Новые API-интерфейсы

Существуют новые API, которые нацелены либо на новые методы построения приложений, либо на предоставление новой функциональности:

Монтажники

Поскольку установки могут использовать только обычные среды выполнения, они устанавливаются после завершения транзакции, пользовательские действия потерпит неудачу если для вашей пользовательской библиотеки dll action требуются среды выполнения Visual C ++ выше, чем у VS 2005 CRT (не с пакетом обновления 1).

Другие советы

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

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

Как правило, программирование для Vista такое же, как и для XP, просто вам следует опасаться новых ограничений учетной записи.

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

http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx

Такое может быть, но это сознательный выбор, который вы делаете как разработчик.Вы можете использовать новые материалы Vista, такие как UAC, CommandLinks, Aero и так далее.Но вам не обязательно (даже UAC можно запрограммировать - просто не делайте ничего, для чего требуются права администратора).Если вы решите игнорировать все компоненты Vista, то между ними нет абсолютно никакой разницы.

Если вы действительно хотите включить это в свое приложение, это имеет значение.Но я бы сказал, что не очень большой.И если вы абстрагируетесь от различий (например, напишите свою собственную функцию, которая показывает TaskDialog для Vista, но которая заглушает входные данные, которые вы вводите в MesssageBox в XP), тогда вы будете писать только против своего собственного кода, и различия будут казаться почти нулевыми.

Кроме того, многие новые возможности Vista (например, UAC или Aero) - это то, о чем вы беспокоитесь один раз, когда создаете первую использующую ее функциональность, запускаете ее, а затем никогда больше не вспоминаете во время разработки приложения.

Безусловно, самая болезненная часть переноса приложения с XP на Vista (с моей точки зрения) связана с многочисленными сервисами и материалами IPv6, которые используют порты, которые ранее были бесплатными, и имеют дело с переходом Wireless Provisioning -> Native WiFi.

Материал UAC - это, по сути, спорный вопрос;разработчику приложения нужно сделать очень мало.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top