Новые возможности в Visual C++ 2008

Обновлен: Ноябрь 2007

В этом разделе содержатся сведения о новых возможностях и изменениях в данном выпуске Visual Studio 2008.

Интегрированная среда разработки Visual C++ (IDE)

Термин

Определение

Диалоговые окна, создаваемые в приложениях ATL, MFC и Win32, теперь соответствуют стилевым рекомендациям Windows Vista.

При создании нового проекта с помощью Visual Studio 2008 все диалоговые окна, вставляемые в приложение, будут соответствовать стилевым рекомендациям Windows Vista. При повторной компиляции проекта, созданного в какой-либо из предыдущих версий Visual Studio, все существующие диалоговые окна будут сохранять прежний вид. Дополнительные сведения о вставке диалоговых окон в приложение см. в описании диалогового редактора Редактор диалоговых окон.

Шаблон проекта ATL теперь имеет возможность регистрации компонентов для всех пользователей.

Начиная с Visual Studio 2008, компоненты COM и библиотеки типов, созданные шаблоном проекта ATL, регистрируются в узле реестра HKEY_CURRENT_USER до тех пор, пока не будет выбран параметр Регистрация компонента для всех пользователей. Дополнительные сведения см. в разделе Параметры приложения, мастер проектов ATL.

Мастер проектов ATL более не предоставляет возможности создания атрибутированных проектов ATL.

Начиная с версии Visual Studio 2008, мастер проектов ATL не поддерживает возможности изменения атрибутированного состояния нового проекта. Все новые проекты ATL, созданные с помощью мастера, теперь являются неатрибутированными.

Запись в реестр может быть перенаправлена.

С введением Windows Vista запись в определенные области реестра требует запуска программы в режиме с повышенными правами. Однако нежелательно всегда запускать Visual Studio в режиме с повышенными правами. Перенаправление по пользователям автоматически перенаправляет записи реестра из HKEY_CLASSES_ROOT в HKEY_CURRENT_USER без каких-либо программных изменений. Дополнительные сведения см. в разделе Страницы свойств компоновщика.

Конструктор классов теперь имеет ограниченную поддержку машинного кода C++.

В более ранних версиях Visual Studio конструктор классов работал только с Visual C# и Visual Basic. Пользователи C++ теперь могут использовать конструктор классов, но только в режиме чтения. Дополнительные сведения об использовании конструктора классов в C++ см. в разделе Работа с кодом Visual C++ в конструкторе классов.

Библиотеки Visual C++

Общий

Термин

Определение

Приложения могут быть привязаны к определенным версиям библиотек Visual C++.

Иногда приложение зависит от обновлений, которые были внесены в библиотеки Visual C++ после выпуска. В этом случае запуск приложения на компьютере с более ранними версиями библиотек может привести к непредсказуемому поведению. Теперь приложение можно привязывать к определенной версии библиотек, в этом случае оно не будет запускаться на компьютере с более ранними версиями библиотек. Дополнительные сведения см. в разделе Распространение Приложения и привязка к определенной библиотеке..

Библиотека STL/CLR

Термин

Определение

Visual C++ теперь включает библиотеку STL/CLR.

Библиотека STL/CLR представляет собой упакованную библиотеку стандартных шаблонов (STL), входящую в состав стандартной библиотеки C++, предназначенной для использования в C++ и среде CLR платформы .NET Framework. При помощи библиотеки STL/CLR теперь можно использовать все контейнеры, итераторы и алгоритмы библиотеки STL в управляемой среде.

Библиотека MFC

Термин

Определение

Windows Vista поддерживает стандартные элементы управления.

Более 150 методов в 18 новых или существующих классах было добавлено для поддержки функций в Windows Vista или для усовершенствования функциональных возможностей в текущих классах MFC.

Новый класс CNetAddressCtrl позволяет вводить и проверять адреса IPv4 и IPv6 или имена DNS. Новый класс CPagerCtrl упрощает использование элемента управления страничного навигатора Windows. Новый класс CSplitButton упрощает использование элемента управления "разворачивающаяся кнопка" Windows для выбора действия по умолчанию или дополнительного действия.

Библиотека поддержки C++

Термин

Определение

C++ вводит маршалинга.

Библиотека маршалинга предоставляет простой и оптимизированный способ маршалинга данных между неуправляемой и управляемой средами. Эта библиотека является альтернативой более сложным и менее рациональным решениям, таким как использование PInvoke. Дополнительные сведения см. в разделе Overview of Marshaling in C++.

Сервер ATL

Термин

Определение

Сервер ATL реализован как общий исходный проект.

Большая часть базы кода сервера ATL реализована как общий исходный проект на CodePlex и не устанавливается как часть Visual Studio 2008. Некоторые файлы, связанные с сервером ATL, более не являются частью Visual Studio. Для списка удаленных файлов см. Removed ATL Server Files.

Классы кодирования и декодирования данных из файла atlenc.h и служебные функции и классы из файлов atlutil.h и atlpath.h теперь являются частью библиотеки ATL.

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

Компилятор и компоновщик Visual C++

Изменения компилятора

Термин

Определение

Компилятор поддерживает управляемое последовательное построение.

Если выбран этот параметр, то компилятор не выполняет повторную компиляцию кода при изменении сборки, на которую имеется ссылка. Вместо этого будет выполнено последовательное построение. Повторная компиляция файлов выполняется только в случае, когда изменения касаются зависимого кода. Дополнительные сведения см. в разделе Страница свойств "Общие" (проект).

Теперь не поддерживаются атрибуты, связанные с сервером ATL.

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

Компилятор поддерживает микроархитектуру ядра Intel.

Компилятор поддерживает настройку для микроархитектуры ядра Intel во время генерации кода. Эта настройка существует по умолчанию и не может быть отключена, поскольку помогает также Pentium 4 и другим процессорам.

Встроенные компоненты поддерживают новейшие процессоры AMD и Intel.

Несколько новых инструкций встроенных компонентов поддерживают большие функциональные возможности в самых новых процессорах AMD и Intel. Дополнительные сведения о новых встроенных функциях см. в разделах Supplemental Streaming SIMD Extensions 3 Instructions, Streaming SIMD Extensions 4 Instructions, SSE4A and Advanced Bit Manipulation Intrinsics, AES Intrinsics, _mm_clmulepi64_si128, and __rdtscp.

Функция __cpuid обновлена.

Функции __cpuid теперь поддерживают несколько новых функций из последних изданий процессоров AMD и Intel. Новый встроенный __cpuidex собирает больше данных о новых процессорах.

Параметр компилятора /MP уменьшает общее время построения.

Параметр /MP может значительно уменьшить общее время компиляции нескольких исходных файлов путем создания нескольких процессов, компилирующих эти файлы одновременно. Этот параметр особенно полезен на компьютерах, поддерживающих технологию Hyper-Threading, на многопроцессорных или многоядерных компьютерах.

Параметр компилятора /Wp64 и ключевое слово __w64 не рекомендуются.

Параметр компилятора /Wp64 и ключевое слово __w64, обнаруживающие проблемы переносимости на 64-разрядные платформы, не рекомендуются и будут удалены в следующей версии компилятора. Вместо них следует использовать компилятор Visual C++ для 64-разрядной платформы. Дополнительные сведения см. в разделе Программирование для 64-разрядных систем на Visual C++.

/Qfast_transcendentals

Этот параметр создает внутренний код для трансцендентной функции. Дополнительные сведения см. в разделе /Qfast_transcendentals (принудительное использование быстрых трансцендентных функций).

/Qimprecise_fwaits

Этот параметр удаляет внутренние команды fwait в блоках try при использовании параметра компилятора /fp:except. Дополнительные сведения см. в разделе /Qimprecise_fwaits (Удалить ожидания в блоке try).

Изменения компоновщика

Термин

Определение

Сведения по контролю учетных записей теперь включаются компоновщиком Visual C++ (link.exe) в файлы манифеста для исполняемых файлов.

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

Компоновщик теперь имеет параметр /DYNAMICBASE, позволяющий включать средство внесения случайности в структуру адресного пространства Windows Vista.

Этот параметр модифицирует заголовок исполняемого файла для указания, должно ли приложение произвольно изменяться во время загрузки. Дополнительные сведения см. в разделе /DYNAMICBASE (использование технологии Address Space Layout Randomization (ASRL)).

Образцы для Visual C++

Новые примеры для Visual Studio 2008

Термин

Определение

Образец CFileDialog: порядок записи событий в журнал

В этом примере создается настраиваемое диалоговое окно, которое показывает события, возникающие при создании диалога CFileDialog.

Образец CMNCTRL3: демонстрация новых элементов управления MFC, доступных в Visual Studio 2008

В этом примере демонстрируются некоторые новые элементы управления, доступные в MFC на Windows Vista, включая кнопку ссылки на команду (CButton), элемент управления страничного навигатора (CPagerCtrl), разворачивающуюся кнопку (CSplitButton) и элемент управления сетевым адресом (CNetAddressCtrl).

Образец NETADDR: образец элемента управления для проверки сетевого адреса Vista

В этом примере демонстрируется использование элемента управления "Средство проверки сетевого адреса" Windows Vista.

Образец StlClrLibrary: демонстрация возможностей STL/CLR

Демонстрируются некоторые из возможностей, доступных при использовании библиотеки STL/CLR.

Экспресс-выпуск Visual C++

Дополнения к экспресс-выпуску Visual C++

Термин

Определение

Экспресс-выпуск Visual C++ теперь включает пакет SDK Windows.

Пользователи экспресс-выпуска Visual C++ теперь могут использовать пакет SDK Windows, не загружая и не устанавливая его отдельно. Экспресс-выпуск Visual C++ теперь также включает мастер проектов Win32.

Связанные разделы

Термин

Определение

Критические изменения

Перечень критических изменений в Visual C++ 2008.

Перенос и обновление программ

Ссылки на сведения по переходу с других платформ и обновлению от предыдущих версий Visual C++.

Практическое руководство. Обновление проектов, созданных в предыдущих версиях Visual C++

Ссылки на разделы, посвященные обновлению проектов Visual C++ от предыдущих версий.

См. также

Другие ресурсы

Приступая к работе в Visual C++

Изменения предыдущих продуктов