Скачать презентацию Интерфейсы прикладного программирования API Интерфейс прикладного программирования Скачать презентацию Интерфейсы прикладного программирования API Интерфейс прикладного программирования

Лекция9_API.ppt

  • Количество слайдов: 17

Интерфейсы прикладного программирования Интерфейсы прикладного программирования

API Интерфейс прикладного программирования (англ. Application Programming Interface, API) — набор готовых функций, структур API Интерфейс прикладного программирования (англ. Application Programming Interface, API) — набор готовых функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для её использования во внешних программных продуктах. Посредством API различные приложения могут взаимодействовать друг с другом.

API Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют API Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию — высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов. . NET Framework -> Win. API Дубль. ГИС API -> Win. API XNA ->. NET Framework -> Direct. X API -> Win. API

Windows API — набор базовых функций интерфейсов программирования приложений операционных систем семейств Windows и Windows API — набор базовых функций интерфейсов программирования приложений операционных систем семейств Windows и Windows NT. Является самым низкоуровневым способом взаимодействия приложений с Windows. API более высокого уровня Windows API . NET Framework (C#) Console. Write. Line Write. Console Класс File. Stream Create. File. W, Read. File, Write. File Стандартная библиотека С++ FILE, fopen, fprintf, fscanf Create. File. W, Read. File, Write. File fstream, cin, cout Create. File. W, Read. File, Write. File

SDK (software development kit) - комплект средств разработки, который позволяет программистам создавать приложения для SDK (software development kit) - комплект средств разработки, который позволяет программистам создавать приложения для конкретной платформы. SDK Назначение Windows SDK для разработки приложений под Windows, используя Windows API Android SDK Разработки приложений для смартфонов под Android OS Direct. X SDK Разработка приложений использующих возможности Direct. X (аппаратное ускорение видеокарт, пиксельныевершинные шейдеры, кодированиедекодирование видео и. т. д. )

Отличия SDK и API – это только интерфейс, т. е. набор сигнатур некоторых функций, Отличия SDK и API – это только интерфейс, т. е. набор сигнатур некоторых функций, которые может использовать программа. SDK – включает в себя API, а так же документацию, примеры программ, дополнительные утилиты упрощающие процесс разработки (средства отладки и. т. д. ). Сигнатура функции — часть общего объявления функции, позволяющая средствам трансляции идентифицировать функцию среди других. Примеры: void Write. Line(string format, object arg 0); void Solve(double a, double b, double c, out double x 1, out double x 2)

Динамически подключаемые библиотеки Весь функционал Windows API реализован в виде набора динамически подключаемых библиотек Динамически подключаемые библиотеки Весь функционал Windows API реализован в виде набора динамически подключаемых библиотек (*. dll). DLL (Dynamic-link library — динамически подключаемая библиотека) —это библиотека, позволяющая многократное использование различными программами. Такие библиотеки обычно имеют расширение DLL (или OCX для библиотек содержащих Active. X компоненты, или DRV для драйверов системы). Формат (внутренняя структура) у DLL такая же как и у исполняемых файлов Windows (EXE).

Динамически подключаемые библиотеки • • • DLL – это скомпилированный файл формата PE (Portable Динамически подключаемые библиотеки • • • DLL – это скомпилированный файл формата PE (Portable Executable). Такой же формат имеют исполняемые файлы Windows (EXE). DLL не может быть запущена напрямую, как EXE-файл, однако может быть загружена любым EXE–файлом. В момент загрузкивыгрузки у DLL выполняется функция Dll. Main DLL может экспортировать набор функцийпроцедурклассов, которые впоследствии могут использоваться различными приложениями. Исполняемый файл же наоборот импортирует набор функцийпроцедурклассов DLL.

Windows API Базовые сервисы (вкл. работу с файлами, процессами, потоками и. т. п) Расширенные Windows API Базовые сервисы (вкл. работу с файлами, процессами, потоками и. т. п) Расширенные сервисы (работа с реестром, управление правами пользователей, выключениеперезагрузка компьютера, запуск сервисов) Реализовано в kernel 32. dll Реализовано в advapi 32. dll Интерфейс графических устройств (вывод графического содержимого на мониторы, принтеры и другие устройства) Реализовано в gdi 32. dll

Windows API Интерфейс пользователя(создание и управление окнами Windows, включает большинство базовых элементов управления – Windows API Интерфейс пользователя(создание и управление окнами Windows, включает большинство базовых элементов управления – кнопка, полоса прокрутки и. т. п. ) Реализовано в user 32. dll Оболочка Windows (Windows Shell) предоставляет приложениям доступ к функциям операционной оболочки Windows (Explorer). Реализовано в shell 32. dll и shlwapi. dll

Зависимости исполняемых файлов Любой исполняемый файл (exe) имеет зависимости от конкретных библиотек (как минимум Зависимости исполняемых файлов Любой исполняемый файл (exe) имеет зависимости от конкретных библиотек (как минимум любой исполняемый файл windows имеет в зависимостях зависимость от kernel 32. dll). Зависимости определяются с помощью: Depends. exe (идёт вместе с Visual Studio). Total Commander (F 3)

Зависимости исполняемых файлов. NET – ориентированное приложение Зависимости исполняемых файлов. NET – ориентированное приложение

Зависимости исполняемых файлов Sol. exe - Пасьянс Зависимости исполняемых файлов Sol. exe - Пасьянс

Использование API функций Для того, чтобы использовать некоторую внешнюю функцию в программе на C#, Использование API функций Для того, чтобы использовать некоторую внешнюю функцию в программе на C#, нужно: 1. Знать имя библиотеки (dll файла) в котором реализована функция 2. Знать сигнатуру функции 3. С помощью конструкции Dll. Import указать, что функция будет использоваться в программе

Импорт функции Find. Window using System. Runtime. Interop. Services; … [Dll. Import( Импорт функции Find. Window using System. Runtime. Interop. Services; … [Dll. Import("user 32. dll", Set. Last. Error = true)] static extern Int. Ptr Find. Window(string lp. Class. Name, string lp. Window. Name); Сигнатура функции Для того, чтобы узнать корректную сигнатуру функции и пример её импорта в C# можно воспользоваться сервисом http: //www. pinvoke. net

Поиск окна калькулятора и передача ему последовательности цифр [Dll. Import( Поиск окна калькулятора и передача ему последовательности цифр [Dll. Import("user 32. dll", Set. Last. Error = true)] static extern Int. Ptr Find. Window(string lp. Class. Name, string lp. Window. Name); [Dll. Import("user 32. dll", Set. Last. Error = true)] static extern bool Post. Message(Int. Ptr h. Wnd, uint Msg, Int. Ptr w. Param, Int. Ptr l. Param); static void Main(string[] args) { const int WM_CHAR = 0 x 102; Int. Ptr h = Find. Window("Calc. Frame", "Калькулятор"); Post. Message(h, WM_CHAR, (Int. Ptr)'2', Int. Ptr. Zero); Thread. Sleep(500); }

[Dll. Import( [Dll. Import("user 32. dll")] static extern bool Set. Window. Pos(Int. Ptr h. Wnd, Int. Ptr h. Wnd. Insert. After, int X, int Y, int cx, int cy, int u. Flags); static void Main(string[] args) { Int. Ptr h = Find. Window("Calc. Frame", "Калькулятор"); for (double i = 0; i < 1000; i+=4) { double y = Math. Cos(i/25)*25; Set. Window. Pos(h, Int. Ptr. Zero, (int)i, (int)y+300, 0, 0, 1); Thread. Sleep(50); } }