Язык C++ (инструкции по работе в Visual C++)
Обновлен: Ноябрь 2007
На этой странице приводятся ссылки на разделы справки, относящиеся к задачам с использованием языка Visual C++. Сведения о разделах справки по другим категориям распространенных задач см. в разделе Инструкции по работе в Visual C++.
Отличия от управляемых расширений для C++
Контрольный список обновлений синтаксиса управляемых расширений для C++
Перечень синтаксических различий между управляемыми расширениями для C++ и новым синтаксисом C++.Основы миграции C++/CLI
Подробное руководство по переносу кода, созданного в управляемых расширениях для C++, на Visual C++ 2008.
Примеры по Visual C++
Массивы
How to: Create Single-Dimension Arrays
Демонстрация создания одномерных массивов ссылочных типов, типов значений и типов собственных указателей.How to: Create Multidimension Arrays
Демонстрация создания многомерных массивов ссылочных типов, типов значений и типов собственных указателей.How to: Iterate Over Arrays with for each
Использование ключевого слова for each, in в различных типах массивов.How to: Create Arrays of Managed Arrays (Jagged Arrays)
Демонстрация создания одномерных массивов, состоящих из управляемых массивов ссылочных типов, типов значений и типов собственных указателей.How to: Sort Arrays
Использование метода Sort для сортировки элементов массива.How to: Sort Arrays Using Custom Criteria
Демонстрация сортировки массивов путем реализации интерфейса IComparable.How to: Make Typedefs for Managed Arrays
Демонстрация создания определения типов для управляемых массивов.... (Variable Argument Lists)
Демонстрация реализации функций с переменным числом аргументов в Visual C++ с помощью синтаксиса ....How to: Use Managed Arrays as Template Type Parameters
Демонстрация использования управляемого массива в качестве параметра шаблона.How to: Declare and Use Interior Pointers and Managed Arrays
Демонстрация объявления и использования внутреннего указателя в массиве.
Упаковка-преобразование и приведение
How to: Use gcnew to Create Value Types and Use Implicit Boxing
Демонстрация использования gcnew в типе значения для создания упакованного типа значения, который затем помещается в кучу управляемого собранного мусора.How to: Unbox
Демонстрация распаковки и модификации значения.How to: Explicitly Request Boxing
Демонстрация явного запроса на преобразование путем присвоения переменной типа Object.How to: Downcast with safe_cast
Демонстрация приведения базового класса к классу, производному от базового, с помощью safe_cast.How to: Use safe_cast and Boxing
Демонстрация использования safe_cast для упаковки значения в кучу среды CLR.How to: Use safe_cast and Generic Types
Демонстрация использования safe_cast для выполнения преобразования с помощью универсального типа.How to: Use safe_cast and Unboxing
Демонстрация использования safe_cast для распаковки значения из кучи среды CLR.How to: Use safe_cast and User-Defined Conversions
Демонстрация вызова заданных пользователем преобразований с помощью safe_cast.How to: Upcast with safe_cast
Демонстрация приведения производного класса к одному из его базовых классов с помощью safe_cast.
Типы данных и интерфейсы
How to: Instantiate Classes and Structs
Демонстрируется, что ссылочные типы и типы значений могут быть созданы только в управляемой куче, но не в стеке и не в собственной куче.How to: Convert with Constructors
Вводные сведения о конструкторах преобразования, или конструкторах, которые принимают тип и используют его для создания объекта.How to: Define an Interface Static Constructor
Вводные сведения о статических конструкторах, или конструкторах, которые можно использовать для инициализации элементов статических данных.How to: Define Static Constructors in a Class or Struct
Демонстрация создания статического конструктора.How to: Write Template Functions that Take Native, Value, or Reference Parameters
Демонстрируется, что при использовании отслеживаемой ссылки в подписи функции шаблона можно гарантировать, что эта функция может вызываться с параметрами собственного типа, типа значения CLR или ссылочного типа CLR.
Перечисления
How to: Specify Underlying Types of Enums
Демонстрация способа задания базового типа enum.How to: Convert Between Managed and Standard Enumerations
Демонстрация преобразования между типом enum и целочисленным типом посредством приведения.
События и делегаты
How to: Compose Delegates
Демонстрация составления делегатов.How to: Define and Use Delegates
Способы определения и использования делегата.How to: Define and Use Static Events
Способы определения и использования статических событий.How to: Define Event Accessor Methods
Способы задания поведения событий при добавлении или удалении обработчиков, а также обстоятельств, при которых вызывается событие.How to: Implement Abstract Events
Демонстрация реализации абстрактных событий.How to: Implement Managed Virtual Events
Демонстрация реализации виртуальных управляемых событий в интерфейсе и классе.How to: Access Events in Interfaces
Демонстрация получения доступа к событию в интерфейсе.How to: Add Multiple Handlers to Events
Демонстрируется, что получатель событий или любой другой код клиента может добавлять к событию один или несколько обработчиков.How to: Associate Delegates to Members of a Value Class
Демонстрация сопоставления делегата с членом класса значений.How to: Associate Delegates to Unmanaged Functions
Демонстрация сопоставления делегата с собственной функцией путем переноса этой функции в управляемый тип и объявления ее вызываемой с помощью P/Invoke.How to: Override Default Access of add, remove, and raise Methods
Демонстрация переопределения заданного по умолчанию доступа к методам добавления, удаления и вызова событий.How to: Raise Events Defined in a Different Assembly
Демонстрация получения сборкой события и обработчика событий, заданных в другой сборке.
Исключения
Basic Concepts in Using Managed Exceptions
Обсуждение основных принципов обработки исключений в управляемых приложениях.Differences in Exception Handling Behavior Under /CLR
Подробное обсуждение отличий от стандартного поведения обработчика исключений и некоторых ограничений.How to: Define and Install a Global Exception Handler
Демонстрация захвата необработанных исключений.How to: Catch Exceptions in Native Code Thrown from MSIL
Демонстрация перехвата исключений CLR в собственном коде с помощью __try и __except.finally
Обсуждение предложения finally обработки исключений CLR.Basic Concepts in Using Managed Exceptions
Обсуждение основных принципов обработки исключений в управляемых приложениях.
For Each
How to: Iterate Over Arrays with for each
Демонстрация использования ключевого слова for each, in в различных типах массивов.How to: Iterate Over a Generic Collection with for each
Создание универсальных коллекций и выполнение итерации по ним с помощью цикла for each, in.How to: Iterate Over a User-Defined Collection with for each
Демонстрация выполнения итерации по коллекции, заданной пользователем, с помощью цикла for each, in.How to: Iterate Over STL Collection with for each
Демонстрация выполнения итерации по коллекциям библиотеки STL с помощью цикла for each, in.
Универсальные шаблоны
Overview of Generics in Visual C++
Общие сведения об универсальных параметризованных типах, поддерживаемых средой CLR.Generic Functions
Обсуждение универсальных функций, или функций, объявленных с помощью параметров типа.Generic Classes (Visual C++)
Описание порядка создания универсального класса.Generic Interfaces (Visual C++)
Описание способа создания универсального интерфейса.Generic Delegates (Visual C++)
Описание способа создания универсального делегата.Constraints
Демонстрация необходимости удовлетворения ограничений, являющихся требованиями, которые типы используют в качестве аргументов.Consuming Generics from Other .NET Languages
Обсуждение использования созданных в одном языке .NET универсальных шаблонов в других языках .NET.Generics and Templates
Общие сведения о множествах различий между шаблонами и универсальными шаблонами.How to: Convert Generic Classes
Демонстрация преобразования универсального класса в Т-класс.How to: Improve Performance with Generics
Обсуждение увеличения производительности приложения, использующего коллекции, с помощью универсальных шаблонов.
Указатели
How to: Declare Interior Pointers with the const Keyword
Использование const в объявлении внутреннего указателя.How to: Overload Functions with Interior Pointers and Native Pointers
Демонстрируется, что функции могут быть переопределены в зависимости от того, является ли тип параметра внутренним или собственным указателем.How to: Cannot Use Tracking References and Unary "Take-Address" Operator
Демонстрация невозможности использования отслеживаемой ссылки в качестве унарного оператора получения адреса.How to: Declare Pinning Pointers and Value Types
Демонстрация возможности объявления закрепляющего указателя на объект типа значения и использования указателя pin_ptr для указания на упакованный тип значения.How to: Declare Value Types with the interior_ptr Keyword
Демонстрация возможности использования указателя interior_ptr с типом значения.How to: Define the Scope of Pinning Pointers
Демонстрируется, что объект закрепляется только в случае, когда pin_ptr указывает на него.How to: Pin Pointers and Arrays
Демонстрация закрепления массива путем объявления закрепляющего указателя на его типы элементов и закрепления одного из его элементов.
Свойства
How to: Use Simple Properties
Демонстрируется, что для простых свойств, т.е. свойств, которые просто назначают и извлекают закрытый элемент данных, не требуется явно объявлять функции методов доступа get и set.How to: Use Indexed Properties
Использование заданных по умолчанию или заданных пользователем индексированных свойств.How to: Use Multidimensional Properties
Создание многомерных свойств, принимающих нестандартное число параметров.How to: Declare and Use Static Properties
Демонстрация объявления и использования статических свойств.How to: Declare and Use Virtual Properties
Демонстрация объявления и использования виртуальных свойств.How to: Declare Abstract and Sealed Properties
Объявление запечатанного или абстрактного свойства путем задания нетривиального свойства и указания ключевых слов abstract или sealed в функциях методов доступа get и set.How to: Overload Property Accessor Methods
Демонстрация переопределения индексированных свойств.
Отслеживаемые ссылки
How to: Use Tracking References and Value Types
Демонстрация простой упаковки-преобразования через отслеживаемую ссылку на тип значения.How to: Using Tracking References and Interior Pointers
Показывается, что при получении адреса отслеживаемой ссылки возвращается значение interior_ptr, и демонстрируется порядок модификации данных и доступа к ним посредством отслеживаемой ссылки.How to: Pass CLR Types by Reference with Tracking References
Демонстрация передачи типов CLR с помощью отслеживаемых ссылок.
Обработка файлов с помощью Visual C++
Практическое руководство. Чтение данных из двоичного файла
Демонстрация чтения двоичных данных из файла.Практическое руководство. Запись в двоичный файл
Демонстрация записи двоичных данных в файл.Практическое руководство. Чтение из текстового файла
Демонстрация построчного открытия и чтения текстового файла.Практическое руководство. Запись данных в текстовый файл
Демонстрация создания текстового файла и записи в него текста с помощью класса StreamWriter.Практическое руководство. Перечисление файлов в каталоге
Демонстрируется порядок извлечения списка файлов в каталоге.Практическое руководство. Отслеживание изменений в файловой системе
Использование класса FileSystemWatcher для регистрации событий, относящихся к создаваемым, изменяемым, удаляемым или переименовываемым файлам.Практическое руководство. Получение сведений о файле
Демонстрация класса FileInfo. Если известно имя файла, то с помощью этого класса можно извлечь такие сведения о файле, как его размер, каталог, полное имя, дата и время создания и последнего изменения.
Операции Windows и Visual C++
Практическое руководство. Запись данных в реестр Windows
Использование ключа CurrentUser для создания доступного для записи экземпляра класса RegistryKey.Практическое руководство. Чтение данных из реестра Windows
Использование ключа CurrentUser для чтения данных из реестра Windows.Практическое руководство. Извлечение текста из буфера обмена
Использование функции-члена GetDataObject для получения указателя на интерфейс IDataObject, в котором затем можно запрашивать формат данных и использовать его для извлечения фактических данных.Практическое руководство. Хранение текста в буфере обмена.
Использование объекта Clipboard, заданного в пространстве имен System.Windows.Forms, для хранения строки.Практическое руководство. Проверка версии Windows
Демонстрация получения сведений о платформе и версии текущей операционной системы.Практическое руководство. Чтение из счетчиков производительности Windows
Демонстрация извлечения и отображения счетчика, обновляемого Windows, для указания процента времени, когда процессор был занят.Практическое руководство. Извлечение текущего имени пользователя.
Демонстрация извлечения имени текущего пользователя.Практическое руководство. Извлечение имени локального компьютера
Демонстрация извлечения имени локальной машины.