Виндовс это система программирования
Обновлено: 30.06.2024
Аххх, как хорошо, просто бальзам на сердце.
Тогда можете считать что сто процентов, нет, даже сто десять.
Не ребят виндовс написан на англиском, из-за этого периодически он непонятно тупит, то есть шутит, по англиски.исходя из того, что dll библиотека может быть написано на чём угодно, хоть на асме, уместно предположить что нет единого языка в windows xp. в неё есть и Ява аплеты и чего только нет.
но само ядро вроде написано на c++, по крайней мере я в это верю 8]
Давайте начнём с простого: на чём написан "Сапёр"? Ну и так далее - по всем программам, DLL-ам и прочим.
Кстати, нет ли утилитки, которая натравливается на на исполнимый файл и говорит, на чём он написан?
Сначала нужно как минимум нужно определить границы самой Windows, например Notepad это ОС или не ОС.
А так однозначно С/C++, хотя некоторые вещи возможно на ASM.
windows xp. в неё есть и Ява аплеты и чего только нет.
Какие ява аплеты. Нет там и строчки ява аплетов. Я не видел исходников ХР, но твёрдо уверен в этом. Зачем Микрософт использовать сторонний язык для своей ОС, откуда они знаю что в свои либы напихала Сан микросистем. Однозначно С\С++, ядро асм.
Вообще, вопрос интересный. Например, для OpenVMS я где-то видел диаграмму использованных языков. Каких только языков там не было!
По теме:
1. Диалоги и визарды MS Office написаны на VB. Поэтому с определенной долей правоты можно утверждать, что часть MS Office написана на VB. Видимо, это ваш друг имел в виду.
2. В инталляторе Windows использовался VBScript.
Есть еще один момент. Если помните, в Win3.1 была утилита recorder - она записывала нажатия и передвижения мыши в файл, позволяя потом этот файл запустить. Потом аналогичную функциональность добавили в MS Office, но при этом записывались не перемещения мыши, а события - записывались они в макрос на VB. Аналогичную функциональность планировалось реализовать для системы в целом, встроив в нее VB. Предполагалось, перемещая мышку и нажимая кнопочки, запуская файлы можно будет записать последовательность событий в файл VBScript и потом запустить заместо bat-файла. Но эту функциональность так и не реализовали.
существует несколько обширных категорий Windows приложений, которые можно создать с помощью C++. каждый из них имеет собственную модель программирования и набор библиотек для Windows, но в любом из них можно использовать стандартную библиотеку c++ и сторонние библиотеки c++.
в этом разделе описано, как использовать Visual Studio и библиотеки оболочек MFC/ATL для создания Windows программ. документацию по самой платформе Windows см. в документации по Windows.
Приложения командной строки (консоль)
Консольные приложения C++ запускаются из командной строки в окне консоли и могут отображать только текстовые выходные данные. Дополнительные сведения см. в разделе Создание калькулятора консоли в C++.
Собственные клиентские приложения для настольных систем
чтобы приступить к работе с традиционным программированием Windows C++, см. статью Начало работы с Win32 и C++. Когда вы получите представление об использовании Win32, будет проще изучить классическое приложение MFC. Пример традиционного классического приложения C++, использующего сложную графику, см. в разделе Hilo: Разработка приложений c++ для Windows.
- точный контроль использования памяти
- важнейшим приоритетом экономичность при потреблении энергии
- Использование GPU для общих вычислений
- доступ к DirectX
- интенсивное использование стандартных библиотек C++
COM-компоненты
Модель COM — это спецификация, которая позволяет программам, написанным на разных языках, взаимодействовать друг с другом. многие компоненты Windows реализуются как com-объекты и следуют стандартным правилам COM для создания объектов, обнаружения интерфейсов и уничтожения объектов. Использование объектов COM из классических приложений C++ относительно просто, но написание собственного COM-объекта является более сложным. Библиотека активных шаблонов (ATL) предоставляет макросы и вспомогательные функции, УПРОЩАЮЩИЕ разработку com. Дополнительные сведения см. в разделе компоненты ATL com Desktop.
Приложения универсальной платформы Windows
универсальная платформа Windows (UWP) — это современный Windows API. приложения UWP работают на любом Windows 10 устройстве, используют XAML для пользовательского интерфейса и полностью поддерживают касание. дополнительные сведения об универсальном контроллере платформы windows см. Windows встатье что такое приложение универсальная платформа Windows (uwp)?
исходная поддержка c++ для UWP состояла из (1) c++/cx, диалекта c++ с расширениями синтаксиса или (2) библиотеки среда выполнения Windows (WRL), основанной на стандартном C++ и COM. C++/CX и WRL по-прежнему поддерживаются. Для новых проектов рекомендуется использовать c++/WinRT, который полностью основан на стандартном c++ и обеспечивает более высокую производительность.
Мост для классических приложений
в Windows 10 можно упаковать существующее классическое приложение или COM-объект в качестве приложения uwp и добавить функции uwp, такие как touch, или вызвать api из современного набора api Windows. можно также добавить приложение UWP в решение для настольных систем в Visual Studio и упаковать их вместе в одном пакете и использовать интерфейсы Windows api для взаимодействия между ними.
Visual Studio 2017 версии 15,4 и более поздних версий позволяет создать Windows Project пакета приложений, чтобы значительно упростить работу по упаковке существующего настольного приложения. К вызовам реестра или API-интерфейсам, которые может использовать настольное приложение, применяются некоторые ограничения. Однако во многих случаях можно создать альтернативные пути кода для обеспечения аналогичной функциональности при выполнении в пакете приложения. Дополнительные сведения см. в статье Мост для классических приложений.
Игры DirectX могут работать на компьютере или Xbox. Дополнительные сведения см. в статье DirectX Graphics и игровыеустройства.
клиенты базы данных SQL Server
для доступа к базам данных SQL Server из машинного кода используйте ODBC или OLE DB. Дополнительные сведения см. в разделе SQL Server Native Client.
Драйверы устройств Windows
Драйверы — это низкоуровневые компоненты, которые делают данные из аппаратных устройств доступными для приложений и других компонентов операционной системы. дополнительные сведения см. в разделе Windows Driver Kit (WDK).
Службы Windows
служба Windows — это программа, которая может выполняться в фоновом режиме с небольшим или без участия пользователя. эти программы называются демоны на UNIX systems. Дополнительные сведения см. в разделе Службы.
Пакеты SDK, библиотеки и файлы заголовков
Visual Studio включает библиотеку времени выполнения C (CRT), стандартную библиотеку C++ и другие библиотеки, относящиеся к Microsoft. большинство папок включения, содержащих файлы заголовков для этих библиотек, находятся в каталоге установки Visual Studio в папке \вк. файлы заголовков Windows и CRT находятся в папке установки Windows SDK.
диспетчер пакетов vcpkg позволяет легко устанавливать сотни сторонних библиотек с открытым исходным кодом для Windows. Дополнительные сведения см. на странице о vcpkg.
К библиотекам Майкрософт относятся:
Microsoft Foundation Classes (MFC): объектно-ориентированная платформа для создания традиционных программ Windows (в частности, корпоративных приложений), со сложным пользовательским интерфейсом, включающим кнопки, поля списков, древовидные структуры и другие элементы управления. Дополнительные сведения см. в разделе MFC Desktop Applications.
Active Template Library (ATL): многофункциональная вспомогательная библиотека для создания компонентов COM. Для получения дополнительной информации см. ATL COM Desktop Components.
C++ AMP (C++ Accelerated Massive Parallelism): библиотека, предоставляющая возможность выполнять высокопроизводительные вычислительные задачи общего характера в графическом процессоре. Для получения дополнительной информации см. C++ AMP (C++ Accelerated Massive Parallelism).
Среда выполнения с параллелизмом: библиотека, упрощающая параллельное и асинхронное программирование для мультиядерных и многоядерных устройств. Для получения дополнительной информации см. Concurrency Runtime.
Для многих сценариев программирования Windows также требуется пакет Windows SDK, в который входят файлы заголовков, обеспечивающие доступ к компонентам операционной системы Windows. по умолчанию Visual Studio устанавливает Windows SDK как компонент рабочей нагрузки C++ для настольных систем, что позволяет разрабатывать универсальные приложения Windows. для разработки приложений UWP требуется Windows 10ная версия Windows SDK. дополнительные сведения см. в разделе Windows 10 SDK. (дополнительные сведения о Windows пакетах sdk для более ранних версий Windows см. в Windows SDK архиве).
Program files (x86) \ Windows kits — это расположение по умолчанию для всех версий Windows SDK, которые вы установили.
Другие платформы, например Xbox и Azure, обладают собственными пакетами SDK, которые вам, возможно, потребуется установить. Дополнительные сведения см. в Центре разработчика DirectX и в Центре разработчика Azure.
средства разработки:
Visual Studio включает многофункциональный отладчик для машинного кода, средства статического анализа, графические средства отладки, полнофункциональный редактор кода, поддержку модульных тестов, а также множество других средств и служебных программ. дополнительные сведения см. в статьях приступая к разработке с помощью Visual Studioи обзор разработки C++ в Visual Studio.
GUI (Graphics User Interface) – стандартный графический интерфейс пользователя. Это та часть Windows , которая обеспечивает поддержку аппаратно-независимой графики.
API (Application Program Interface) — интерфейс прикладных программ (набор функций, сосредоточенных в ядре Windows и дополнительных библиотеках).
DLL (Dynamic Link Libraries) — библиотека динамической компоновки. Функции API содержатся в библиотеках динамической загрузки.
DDE – динамический обмен данными .
Нотация Windows ("венгерская нотация Чарльза Симони")
При программировании под Windows принято использовать префиксы перед именами переменных, указывающие на принадлежность к типу данных. Рекомендуется давать имена собственным переменным и идентификаторам, придерживаясь следующих принципов:
- мнемоническое значение – идентификатор должен легко запоминаться;
- смысловое значение – роль идентификатора должна быть ясна из его названия;
- преемственность – похожие объекты должны иметь похожие идентификаторы;
- быстрота принятия решения – придумывание, ввод и редактирование идентификатора не должны занимать много времени.
Некоторые префиксы венгерской нотации:
Часто используемые типы данных Windows:
Создание простейшего Windows-приложения с использованием Win API
Элементы Windows-приложения
Построение приложения Windows включает выполнение следующих этапов:
- Создание WinMain(. ) и связанных с ней функций на языке C или C++.
- Создание описаний меню и всех дополнительных ресурсов, помещение описаний в файл описания ресурсов.
- Создание уникальных курсоров, пиктограмм и битовых образов.
- Создание диалоговых окон.
- Создание файла проекта.
- Компиляция и компоновка всего кода.
Простейшая программа. Создание и вывод Windows-окна на экран
Создадим пустой проект Windows- приложения с помощью мастера:
Добавим следующий код:
Скомпилируем и запустим программу. На экране появится Windows-окно.
Комментарии к программе
Все приложения Windows должны содержать два основных элемента: функцию WinMain(. ) и функцию окна WndProc .
Функция WinMain(. ) служит точкой входа в приложение. Эта функция отвечает за следующие действия:
Заголовочный файл windows.h нужен для любой традиционной Windows программы на C. Именно в нем содержатся разные определения констант ( WM_DESTROY и т. д.).
Читайте также: