Руководство по программированию для windows

Общие сведения о программировании на C++ в Windows Overview of Windows Programming in C++

Существует несколько обширных категорий приложений Windows, которые можно создать с помощью C++. There are several broad categories of Windows applications that you can create with C++. Каждый из них имеет собственную модель программирования и набор библиотек для Windows, но в любом из них можно использовать стандартную библиотеку C++ и сторонние библиотеки C++. Each has its own programming model and set of Windows-specific libraries, but the C++ standard library and third-party C++ libraries can be used in any of them.

В этом разделе описывается, как использовать Visual Studio и библиотеки оболочек MFC/ATL для создания программ Windows. This section discusses how to use Visual Studio and the MFC/ATL wrapper libraries to create Windows programs. Документацию по самой платформе Windows см. в документации по Windows. For documentation on the Windows platform itself, see Windows documentation.

Приложения командной строки (консоль) Command line (console) applications

Консольные приложения C++ запускаются из командной строки в окне консоли и могут отображать только текстовые выходные данные. C++ console applications run from the command line in a console window and can display text output only. Дополнительные сведения см. в разделе Создание калькулятора консоли в C++. For more information, see Create a console calculator in C++.

Собственные клиентские приложения для настольных систем Native desktop client applications

Собственное клиентское приложение для настольных систем — это оконное приложение c или C++, которое использует исходные интерфейсы API для Windows c или COM для доступа к операционной системе. A native desktop client application is a C or C++ windowed application that uses the original native Windows C APIs or Component Object Model (COM) APIs to access the operating system. Эти интерфейсы API написаны в основном на языке C. Существует несколько способов создания собственного классического приложения: вы можете программировать напрямую с помощью API-интерфейсов Win32, используя цикл сообщений в стиле C, который обрабатывает события операционной системы. Those APIs are themselves written mostly in C. There’s more than one way to create a native desktop app: You can program using the Win32 APIs directly, using a C-style message loop that processes operating system events. Или можно программировать с помощью Microsoft Foundation Classes (MFC), объектно-ориентированной библиотеки C++, которая заключает в оболочку Win32. Or, you can program using Microsoft Foundation Classes (MFC), a lightly object-oriented C++ library that wraps Win32. Ни один из подходов не считается «современным» по сравнению с универсальная платформа Windows (UWP), но оба они все еще полностью поддерживаются и миллионы строк кода работают в мире уже сегодня. Neither approach is considered «modern» compared to the Universal Windows Platform (UWP), but both are still fully supported and have millions of lines of code running in the world today. Приложение Win32, выполняемое в окне, требует, чтобы разработчик работал явно с сообщениями Windows внутри функции процедуры Windows. A Win32 application that runs in a window requires the developer to work explicitly with Windows messages inside a Windows procedure function. Несмотря на имя, приложение Win32 можно скомпилировать 32 как 64-разрядный (x86) или 64-разрядный (x64) двоичный файл. Despite the name, a Win32 application can be compiled as a 32-bit (x86) or 64-bit (x64) binary. В интегрированной среде разработки Visual Studio термины x86 и Win32 являются синонимами. In the Visual Studio IDE, the terms x86 and Win32 are synonymous.

Чтобы приступить к работе с традиционным программированием на языке Windows C++, см. статью Начало работы с Win32 и C++. To get started with traditional Windows C++ programming, see Get Started with Win32 and C++. Когда вы получите представление об использовании Win32, будет проще изучить классическое приложение MFC. After you gain some understanding of Win32, it will be easier to learn about MFC Desktop Applications. Пример традиционного классического приложения C++, использующего сложную графику, см. в разделе Hilo: Разработка приложений c++ для Windows. For an example of a traditional C++ desktop application that uses sophisticated graphics, see Hilo: Developing C++ Applications for Windows.

Читайте также:  Последняя версия adobe reader для windows 10

C++ или .NET? C++ or .NET?

Как правило, программирование .NET в C# менее сложное, менее подверженное ошибкам и имеет более современный объектно-ориентированный API, чем Win32 или MFC. In general, .NET programming in C# is less complex, less error-prone, and has a more modern object-oriented API than Win32 or MFC. В большинстве случаев его производительность больше, чем достаточно. In most cases, its performance is more than adequate. .NET использует Windows Presentation Foundation (WPF) для расширенной графики, и вы можете использовать как Win32, так и современный среда выполнения Windows API. .NET features the Windows Presentation Foundation (WPF) for rich graphics, and you can consume both Win32 and the modern Windows Runtime API. В качестве общего правила рекомендуется использовать C++ для классических приложений, когда требуется: As a general rule, we recommend using C++ for desktop applications when you require:

  • точный контроль использования памяти precise control over memory usage
  • важнейшим приоритетом экономичность при потреблении энергии the utmost economy in power consumption
  • Использование GPU для общих вычислений usage of the GPU for general computing
  • доступ к DirectX access to DirectX
  • интенсивное использование стандартных библиотек C++ heavy usage of standard C++ libraries

Также можно сочетать мощь и эффективность C++ с программированием на .NET. It’s also possible to combine the power and efficiency of C++ with .NET programming. Вы можете создать пользовательский интерфейс на C# и использовать C++/CLI, чтобы позволить приложению использовать собственные библиотеки C++. You can create a user interface in C# and use C++/CLI to enable the application to consume native C++ libraries. Дополнительные сведения см. в разделе программирование .NET с помощью C++/CLI. For more information, see .NET Programming with C++/CLI.

COM-компоненты COM Components

Модель COM — это спецификация, которая позволяет программам, написанным на разных языках, взаимодействовать друг с другом. The Component Object Model (COM) is a specification that enables programs written in different languages to communicate with one another. Многие компоненты Windows реализуются как COM-объекты и следуют стандартным правилам COM для создания объектов, обнаружения интерфейсов и уничтожения объектов. Many Windows components are implemented as COM objects and follow standard COM rules for object creation, interface discovery, and object destruction. Использование объектов COM из классических приложений C++ относительно просто, но написание собственного COM-объекта является более сложным. Using COM objects from C++ desktop applications is relatively straightforward, but writing your own COM object is more advanced. Библиотека активных шаблонов (ATL) предоставляет макросы и вспомогательные функции, УПРОЩАЮЩИЕ разработку com. The Active Template Library (ATL) provides macros and helper functions that simplify COM development. Дополнительные сведения см. в разделе компоненты ATL com Desktop. For more information, see ATL COM desktop components.

Приложения универсальной платформы Windows Universal Windows Platform apps

Универсальная платформа Windows (UWP) — это современный API Windows. The Universal Windows Platform (UWP) is the modern Windows API. Приложения UWP работают на любом устройстве Windows 10, используют XAML для пользовательского интерфейса и полностью поддерживают касание. UWP apps run on any Windows 10 device, use XAML for the user-interface, and are fully touch-enabled. Дополнительные сведения об универсальномконтроллере платформы Windows см. в статье что такое приложение универсальная платформа Windows (UWP) . For more information about UWP, see What’s a Universal Windows Platform (UWP) app? and Guide to Windows Universal Apps.

Исходная поддержка C++ для UWP состояла из (1) C++/CX, диалекта C++ с расширениями синтаксиса или (2) библиотеки среда выполнения Windows (WRL), основанной на стандартном C++ и COM. The original C++ support for UWP consisted of (1) C++/CX, a dialect of C++ with syntax extensions, or (2) the Windows Runtime Library (WRL), which is based on standard C++ and COM. C++/CX и WRL по-прежнему поддерживаются. Both C++/CX and WRL are still supported. Для новых проектов рекомендуется использовать c++/WinRT, который полностью основан на стандартном c++ и обеспечивает более высокую производительность. For new projects, we recommend C++/WinRT, which is entirely based on standard C++ and provides faster performance.

Читайте также:  Windows 10 personal data

Мост для классических приложений Desktop Bridge

В Windows 10 можно упаковать существующее классическое приложение или COM-объект в качестве приложения UWP и добавить функции UWP, такие как сенсорный ввод, или вызвать API из современного набора API Windows. In Windows 10, you can package your existing desktop application or COM object as a UWP app, and add UWP features such as touch, or call APIs from the modern Windows API set. Можно также добавить приложение UWP в решение для настольных систем в Visual Studio и упаковать их в один пакет и использовать интерфейсы API Windows для обмена данными между ними. You can also add a UWP app to a desktop solution in Visual Studio, and package them together in a single package and use Windows APIs to communicate between them.

Visual Studio 2017 версии 15,4 и более поздних версий позволяет создать проект пакета приложений Windows, чтобы значительно упростить работу по упаковке существующего настольного приложения. Visual Studio 2017 version 15.4 and later lets you create a Windows Application Package Project to greatly simplify the work of packaging your existing desktop application. К вызовам реестра или API-интерфейсам, которые может использовать настольное приложение, применяются некоторые ограничения. A few restrictions apply to the registry calls or APIs your desktop application can use. Однако во многих случаях можно создать альтернативные пути кода для обеспечения аналогичной функциональности при выполнении в пакете приложения. However, in many cases you can create alternate code paths to achieve similar functionality while running in an app package. Дополнительные сведения см. в статье Мост для классических приложений. For more information, see Desktop Bridge.

Игры Games

Игры DirectX могут работать на компьютере или Xbox. DirectX games can run on the PC or Xbox. Дополнительные сведения см. в статье DirectX Graphics и игровыеустройства. For more information, see DirectX Graphics and Gaming.

Клиенты базы данных SQL Server SQL Server database clients

Для доступа к базам данных SQL Server из машинного кода используйте ODBC или OLE DB. To access SQL Server databases from native code, use ODBC or OLE DB. Дополнительные сведения см. в разделе SQL Server Native Client. For more information, see SQL Server Native Client.

Драйверы устройств Windows Windows device drivers

Драйверы — это низкоуровневые компоненты, которые делают данные из аппаратных устройств доступными для приложений и других компонентов операционной системы. Drivers are low-level components that make data from hardware devices accessible to applications and other operating system components. Дополнительные сведения см. в разделе Windows Driver Kit (WDK). For more information, see Windows Driver Kit (WDK).

Службы Windows Windows services

Служба Windows — это программа, которая может выполняться в фоновом режиме с небольшим или без участия пользователя. A Windows service is a program that can run in the background with little or no user interaction. Эти программы называются демоны на системах UNIX. These programs are called daemons on UNIX systems. Дополнительные сведения см. в разделе Службы. For more information, see Services.

Пакеты SDK, библиотеки и файлы заголовков SDKs, libraries, and header files

Visual Studio включает в себя библиотеку времени выполнения C (CRT), стандартную библиотеку C++ и другие библиотеки, относящиеся к Microsoft. Visual Studio includes the C Runtime Library (CRT), the C++ Standard Library, and other Microsoft-specific libraries. Большинство папок включения, содержащих файлы заголовков для этих библиотек, находятся в каталоге установки Visual Studio в папке \ВК Most of the include folders that contain header files for these libraries are located in the Visual Studio installation directory under the \VC\ folder. Файлы заголовков Windows и CRT находятся в папке установки Windows SDK. The Windows and CRT header files are found in the Windows SDK installation folder.

Читайте также:  Порядок сетевых интерфейсов windows

Диспетчер пакетов Vcpkg позволяет легко устанавливать сотни сторонних библиотек с открытым исходным кодом для Windows. The Vcpkg package manager lets you conveniently install hundreds of third-party open-source libraries for Windows.

К библиотекам Майкрософт относятся: The Microsoft libraries include:

Microsoft Foundation Classes (MFC): объектно-ориентированная платформа для создания традиционных программ Windows (в частности, корпоративных приложений), со сложным пользовательским интерфейсом, включающим кнопки, поля списков, древовидные структуры и другие элементы управления. Microsoft Foundation Classes (MFC): An object-oriented framework for creating traditional Windows programs—especially enterprise applications—that have rich user interfaces that feature buttons, list boxes, tree views, and other controls. Дополнительные сведения см. в разделе MFC Desktop Applications. For more information, see MFC Desktop Applications.

Active Template Library (ATL): многофункциональная вспомогательная библиотека для создания компонентов COM. Active Template Library (ATL): A powerful helper library for creating COM components. Для получения дополнительной информации см. ATL COM Desktop Components. For more information, see ATL COM Desktop Components.

C++ AMP (C++ Accelerated Massive Parallelism): библиотека, предоставляющая возможность выполнять высокопроизводительные вычислительные задачи общего характера в графическом процессоре. C++ AMP (C++ Accelerated Massive Parallelism): A library that enables high-performance general computational work on the GPU. Для получения дополнительной информации см. C++ AMP (C++ Accelerated Massive Parallelism). For more information, see C++ AMP (C++ Accelerated Massive Parallelism).

Среда выполнения с параллелизмом: библиотека, упрощающая параллельное и асинхронное программирование для мультиядерных и многоядерных устройств. Concurrency Runtime: A library that simplifies the work of parallel and asynchronous programming for multicore and many-core devices. Для получения дополнительной информации см. Concurrency Runtime. For more information, see Concurrency Runtime.

Для многих сценариев программирования Windows также требуется пакет Windows SDK, в который входят файлы заголовков, обеспечивающие доступ к компонентам операционной системы Windows. Many Windows programming scenarios also require the Windows SDK, which includes the header files that enable access to the Windows operating system components. По умолчанию Visual Studio устанавливает Windows SDK как компонент рабочей нагрузки C++ для настольных систем, который позволяет разрабатывать универсальные приложения для Windows. By default, Visual Studio installs the Windows SDK as a component of the C++ Desktop workload, which enables development of Universal Windows apps. Для разработки приложений UWP требуется версия Windows 10 Windows SDK. To develop UWP apps, you need the Windows 10 version of the Windows SDK. Дополнительные сведения см. в разделе пакет SDK для Windows 10. For information, see Windows 10 SDK. (Дополнительные сведения о пакетах Windows SDK для более ранних версий Windows см. в Windows SDK архиве). (For more information about the Windows SDKs for earlier versions of Windows, see the Windows SDK archive).

Программные файлы (x86) \Windows Kit — это расположение по умолчанию для всех версий Windows SDK, которые вы установили. Program Files (x86)\Windows Kits is the default location for all versions of the Windows SDK that you’ve installed.

Другие платформы, например Xbox и Azure, обладают собственными пакетами SDK, которые вам, возможно, потребуется установить. Other platforms such as Xbox and Azure have their own SDKs that you may have to install. Дополнительные сведения см. в Центре разработчика DirectX и в Центре разработчика Azure. For more information, see the DirectX Developer Center and the Azure Developer Center.

средства разработки: Development Tools

Visual Studio включает многофункциональный отладчик для машинного кода, средства статического анализа, графические средства отладки, полнофункциональный редактор кода, поддержку модульных тестов, а также множество других средств и служебных программ. Visual Studio includes a powerful debugger for native code, static analysis tools, graphics debugging tools, a full-featured code editor, support for unit tests, and many other tools and utilities. Дополнительные сведения см. в статьях Приступая к разработке с помощью Visual Studioи Общие сведения о разработке C++ в Visual Studio. For more information, see Get started developing with Visual Studio, and Overview of C++ development in Visual Studio.

Оцените статью