Среды программирования операционный система windows

Введение в создание оконных приложений

Программирование в Windows основывается на использовании функций API (Application Program Interface, т.е. интерфейс программного приложения).

Программа для Windows в значительной степени состоит из таких вызовов. Все взаимодействие с внешними устройствами и ресурсами операционной системы происходит посредством таких функций.

Программный интерфейс приложений

Windows API (Application Programming Interfaces) — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Microsoft Windows.

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

Все основные функции Windows объявляются в заголовочных файлах. Главный заголовочный файл называется WINDOWS.H, и в этом файле содержится множество ссылок на другие заголовочные файлы.

Основное отличие функций API от библиотечных функций С: код библиотечных функций связывается с кодом программы пользователя, а код функций API остается вне программы пользователя в динамически подключаемых библиотеках (DLL – Dynamic Link Library), что позволяет создавать более компактный и эффективный код приложений.

При запуске программы Windows она взаимодействует с операционной системой посредством процесса «динамического связывания». Большая часть динамических библиотек DLL расположена в каталоге WINDOWS\SYSTEM.

При компоновке программы для Windows, чтобы сделать ее исполняемой, необходимо связывать ее с «библиотеками импорта», поставляемыми в составе среды программирования (IDE – Integrated Development Environment), которой может являться, в частности, Microsoft Visual Studio. Библиотеки импорта содержат имена всех функций Windows из динамически подключаемых библиотек и ссылки на них. Компоновщик использует эту информацию для создания в исполняемом EXE-файле таблицы, которую Windows использует при загрузке программы для настройки адресов функций API.

Графический интерфейс пользователя

Графический интерфейс пользователя (Graphical User Interface, GUI) еще называют «визуальный интерфейс» или «графическая оконная среда».

GUI делает возможным использование графики на растровом экране. Графика дает лучшее восприятие элементов управления на экране, визуально богатую среду для передачи информации. В GUI экран становится устройством ввода и показывает различные графические объекты в виде картинок и конструкций для ввода информации, таких как кнопки или полосы прокрутки. Используя клавиатуру и манипулятор (мышь, тачпад), пользователь может непосредственно оперировать объектами на экране. Графические объекты можно перетаскивать, кнопки можно нажимать, полосы прокрутки можно прокручивать. Взаимодействие между пользователем и программой становится более тесным.

Пользователям не надо тратить слишком много времени на то, чтобы научиться пользоваться компьютером и составлять новые программы. Система Windows способствует этому, поскольку все программы для Windows выглядят и воспринимаются одинаково.

Любая программа для Windows имеет окно — прямоугольную область на экране, в котором приложение отображает информацию и получает реакцию от пользователя. Окно идентифицируется заголовком. Большинство функций программы запускается посредством меню. Слишком большой для экрана объем информации может быть просмотрен с помощью полос прокрутки. Некоторые пункты меню вызывают появление окон диалога, в которые пользователь вводит дополнительную информацию.

Программирование Windows-приложений тесно связано с понятиями объектно-ориентированного программирования. Главным объектом в операционной системе Windows является окно. Окно может содержать элементы управления: кнопки, списки, окна редактирования и др. Эти элементы, по сути, также являются окнами, но обладающими особыми свойствами.

Активное окно – окно, получающее реакцию от пользователя в данный момент.

Читайте также:  Windows не может отформатировать dvd диск

Основными элементами окна являются

  • 1 — строка заголовка title bar
  • 2 — строка меню menu bar
  • 3 — системное меню system menu
  • 4 — кнопка сворачивания окна minimize box
  • 5 — кнопка разворачивания окна maximize box
  • 6 — рамка изменения размеров sizing border
  • 7 — клиентская область client area
  • 8 — горизонтальная и вертикальная полосы прокрутки scroll bars

Многозадачность

Многозадачность ( multitasking ) — свойство операционной системы обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов.

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

Логика построения Windows-приложения должна обеспечивать корректную и предсказуемую работу при поступлении сообщений любого типа. Одновременно несколько программ могут выполняться и иметь вывод на экран. Каждая программа занимает на экране прямоугольное окно. Пользователь может перемещать окна по всему экрану, менять их размер, переключаться между разными программами и передавать данные от одной программы к другой.

Операционная система не сможет реализовать многозадачность без управления памятью. Так как одни программы запускаются, а другие завершаются, память фрагментируется. Операционная система Windows имеет средства управления фрагментами памяти.

Процессы и потоки

Процессом ( process ) называется экземпляр программы, загруженной в память. Экземпляр программы может создавать потоки ( thread ), которые представляют собой последовательность инструкций на выполнение.

Выполняются не процессы, а именно потоки. Любой процесс имеет хотя бы один поток. Этот поток называется главным (основным) потоком приложения .

Потоки на самом деле выполняются не одновременно, а по очереди. Распределение процессорного времени происходит между потоками, но переключение между ними происходит так часто, что кажется будто они выполняются параллельно.

Все потоки ранжируются по приоритетам. Приоритет потока обозначается числом от 0 до 31, и определяется исходя из приоритета процесса, породившего поток, и относительного приоритета самого потока. Таким образом, достигается наибольшая гибкость, и каждый поток в идеале получает столько времени, сколько ему необходимо.

Дескрипторы

Дескриптор (описатель) объекта — служебная структура данных, представляющая собой беззнаковое целое число и служащая для идентификации различных объектов. Дескриптор представляет собой указатель на некоторую системную структуру или индекс в некоторой системной таблице.

Примеры дескрипторов, описанных в заголовочном файле windows.h

Контекст устройства

GDI – графический интерфейс устройства. Функции системной библиотеки GDI32.dll используются для вывода графики на экран.

Дескриптор контекста устройства — это паспорт конкретного окна для функций GDI. Контекст устройства фактически является структурой данных, которая внутренне поддерживается GDI. Он связан с конкретным устройством вывода информации (принтер, дисплей). Что касается дисплея, то в данном случае контекст устройства обычно связан с конкретным окном на экране.

Настройка среды разработки в Windows 10 Set up your development environment on Windows 10

Это руководство поможет приступить к установке и настройке языков и средств, необходимых для разработки в Windows или подсистеме Windows для Linux. This guide will help you get started with installing and setting up the languages and tools you need to develop on Windows or Windows Subsystem for Linux.

Пути разработки Development paths

Начало работы с NodeJS Get started with NodeJS
Установите NodeJS и настройте среду разработки в Windows или подсистеме Windows для Linux. Install NodeJS and get your development environment setup on Windows or Windows Subsystem for Linux.

Читайте также:  Mse антивирус для windows 2012 server

Начало работы с Python Get started with Python
Установите Python и настройте среду разработки в Windows или подсистеме Windows для Linux. Install Python and get your development environment setup on Windows or Windows Subsystem for Linux.

Начало работы с Android Get started with Android
Установите Android Studio или выберите межплатформенное решение, например Xamarin, React или Cordova, и настройте среду разработки в Windows. Install Android Studio, or choose a cross-platform solution like Xamarin, React, or Cordova, and get your development environment setup on Windows.

Начало работы с классическими приложениями для Windows Get started with Windows Desktop
Приступите к созданию классических приложений для Windows 10 с помощью UWP, Win32, WPF, Windows Forms или обновите и разверните существующие классические приложения с помощью MSIX и XAML Islands. Get started building desktop apps for Windows 10 using UWP, Win32, WPF, Windows Forms, or updating and deploying existing desktop apps with MSIX and XAML Islands.

Начало работы с C и C++ Get started with C++ and C
Приступите к работе с C++ и C и используйте их для сборки при разработке приложений, служб и средств. Get started with C++, C, and assembly to develop apps, services, and tools.

Начало работы с C# Get started with C#
Начните создавать приложения с помощью C# и .NET Core. Get started building apps using C# and .NET Core.

Начало работы с Docker Desktop для Windows Get started with Docker Desktop for Windows
Создавайте удаленные контейнеры разработки с поддержкой Visual Studio, VS Code, .NET, подсистемы Windows для Linux и разных служб Azure. Create remote development containers with support from Visual Studio, VS Code, .NET, Windows Subsystem for Linux, or a variety of Azure services.


Начало работы с PowerShell Get started with PowerShell
Начните использовать кросс-платформенную автоматизацию задач и управление конфигурацией с помощью PowerShell — оболочки командной строки и языка сценариев. Get started with cross-platform task automation and configuration management using PowerShell, a command-line shell and scripting language.

Начало работы с Rust Get started with Rust
Приступите к программированию на Rust, включая настройку Rust для Windows с помощью крейта windows. Get started programming with Rust—including how to set up Rust for Windows by consuming the windows crate.

Средства и платформы Tools and platforms


Подсистема Windows для Linux Windows Subsystem for Linux
Используйте избранный дистрибутив Linux, полностью интегрированный с Windows (больше не требуются два варианта загрузки). Use your favorite Linux distribution fully integrated with Windows (no more need for dual-boot).
Установка WSL Install WSL


Терминал Windows Windows Terminal
Настройте среду терминала для работы с несколькими оболочками командной строки. Customize your terminal environment to work with multiple command line shells.
Установка терминала Install Terminal


Диспетчер пакетов Windows Windows Package Manager
Используйте клиент winget.exe, многофункциональный диспетчер пакетов и командную строку для установки приложений в Windows 10. Use the winget.exe client, a comprehensive package manager, with your command line to install applications on Windows 10.
Установка диспетчера пакетов Windows (общедоступная предварительная версия) Install Windows Package Manager (public preview)


Windows PowerToys Windows PowerToys
Настройте и оптимизируйте работу Windows, чтобы повысить производительность благодаря этому набору программ опытных пользователей. Tune and streamline your Windows experience for greater productivity with this set of power user utilities.
Установка PowerToys (общедоступная предварительная версия) Install PowerToys (public preview)

Читайте также:  Как долго ставится windows


VS Code VS Code
Упрощенный редактор исходного кода со встроенной поддержкой JavaScript, TypeScript, Node.js, обширной экосистемой расширений (C++, C#, Java, Python, PHP, Go) и средами выполнения (например, .NET и Unity). A lightweight source code editor with built-in support for JavaScript, TypeScript, Node.js, a rich ecosystem of extensions (C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity).
Установка VS Code Install VS Code


Visual Studio Visual Studio
Интегрированная среда разработки, которую можно использовать для редактирования, отладки, создания кода и публикации приложений, включая компиляторы, функцию завершения кода IntelliSense и многое другое. An integrated development environment that you can use to edit, debug, build code, and publish apps, including compilers, intellisense code completion, and many more features.
Установка Visual Studio Install Visual Studio


Azure Azure
Полная облачная платформа для размещения существующих приложений и оптимизации разработки новых приложений. A complete cloud platform to host your existing apps and streamline new development. Службы Azure интегрируют все, что необходимо для разработки, тестирования, развертывания и управления приложениями. Azure services integrate everything you need to develop, test, deploy, and manage your apps.
Настройка учетной записи Azure Set up an Azure account


.NET .NET
Платформа разработки с открытым исходным кодом со средствами и библиотеками для создания приложений любого типа, включая веб-приложения, мобильные устройства, настольные системы, игры, Интернет вещей, облачные службы и микрослужбы. An open source development platform with tools and libraries for building any type of app, including web, mobile, desktop, gaming, IoT, cloud, and microservices.
Установка .NET Install .NET

Запуск Windows и Linux Run Windows and Linux

Подсистема Windows для Linux (WSL) позволяет разработчикам запускать операционную систему Linux вместе с Windows. Windows Subsystem for Linux (WSL) allows developers to run a Linux operating system right alongside Windows. Обе операционные системы используют один и тот же жесткий диск (и могут обращаться к файлам друг друга), буфер обмена естественным образом поддерживает копирование и вставку между двумя ОС, нет необходимости в двойной загрузке. Both share the same hard drive (and can access each other’s files), the clipboard supports copy-and-paste between the two naturally, there’s no need for dual-booting. WSL позволяет использовать Bash и обеспечивает среду, лучше всего знакомую пользователям Mac. WSL enables you to use BASH and will provide the kind of environment most familiar to Mac users.

Можно также использовать Терминал Windows, чтобы открывать в одном окне с несколькими вкладками или несколькими панелями все любимые программы командной строки, будь то PowerShell, командная строка Windows, Ubuntu, Debian, Azure CLI, Oh-my-Zsh, Git Bash или все перечисленные. You can also use Windows Terminal to open all of your favorite command line tools in the same window with multiple tabs, or in multiple panes, whether that’s PowerShell, Windows Command Prompt, Ubuntu, Debian, Azure CLI, Oh-my-Zsh, Git Bash, or all of the above.

Дополнительные сведения о Терминале Windows см. в документации и видео на канале Channel 9. Learn more in the Windows Terminal docs or via Windows Terminal videos on Channel 9.

Переход между Mac и Windows Transitioning between Mac and Windows

Ознакомьтесь с руководством по переходу между средой разработки Mac и Windows (или подсистемой Windows для Linux). Check out our guide to transitioning between between a Mac and Windows (or Windows Subsystem for Linux) development environment. С его помощью можно понять разницу между: It can help you map the difference between:

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