Api программирование под windows

Содержание
  1. Программирование под Windows с использованием Win API
  2. Основные понятия и термины, используемые при разработке Windows приложений
  3. Нотация Windows («венгерская нотация Чарльза Симони»)
  4. Некоторые префиксы венгерской нотации:
  5. Часто используемые типы данных Windows:
  6. Создание простейшего Windows-приложения с использованием Win API
  7. Элементы Windows-приложения
  8. Простейшая программа. Создание и вывод Windows-окна на экран
  9. Комментарии к программе
  10. Программирование под Windows с использованием Win API
  11. Основные понятия и термины, используемые при разработке Windows приложений
  12. Нотация Windows («венгерская нотация Чарльза Симони»)
  13. Некоторые префиксы венгерской нотации:
  14. Часто используемые типы данных Windows:
  15. Создание простейшего Windows-приложения с использованием Win API
  16. Элементы Windows-приложения
  17. Простейшая программа. Создание и вывод Windows-окна на экран
  18. Комментарии к программе
  19. Программирование под Windows с использованием Win API
  20. Основные понятия и термины, используемые при разработке Windows приложений
  21. Нотация Windows («венгерская нотация Чарльза Симони»)
  22. Некоторые префиксы венгерской нотации:
  23. Часто используемые типы данных Windows:
  24. Создание простейшего Windows-приложения с использованием Win API
  25. Элементы Windows-приложения
  26. Простейшая программа. Создание и вывод Windows-окна на экран
  27. Комментарии к программе
  28. Пошаговое руководство. Вызов API Windows (Visual Basic) Walkthrough: Calling Windows APIs (Visual Basic)
  29. Вызовы API с помощью Declare API Calls Using Declare
  30. Объявление процедуры DLL To declare a DLL procedure
  31. Части инструкции DECLARE Parts of the Declare Statement
  32. Модификатор Auto Auto modifier
  33. Ключевые слова lib и Alias Lib and Alias keywords
  34. Объявления аргументов и типов данных Argument and Data Type Declarations
  35. Константы Windows API Windows API Constants
  36. Маршалирование данных Data Marshaling
  37. Вызовы API с помощью DllImport API Calls Using DllImport
  38. Вызов API Windows с помощью атрибута DllImport To call a Windows API using the DllImport attribute

Программирование под Windows с использованием Win API

Основные понятия и термины, используемые при разработке Windows приложений

API (Application Program Interface) — интерфейс прикладных программ (набор функций, сосредоточенных в ядре Windows и дополнительных библиотеках).

DLL (Dynamic Link Libraries) — библиотека динамической компоновки. Функции API содержатся в библиотеках динамической загрузки.

Нотация Windows («венгерская нотация Чарльза Симони»)

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

Некоторые префиксы венгерской нотации:

Префикс Значение
A массив
B логический тип (int)
By беззнаковый символьный тип (byte)
C символьный тип (1 байт)
Cb счетчик байтов
Cr цвет
cx,cy короткий тип (short)
Dbl double (с плавающей точкой)
Dw беззнаковое длинное целое число (dword)
Flt float (вещественная с плавающей точкой)
Fn функция
g_ префикс для глобальной переменной (глобальная переменная)
H handle (беззнаковое целое число)
hDC handle (указатель на контекст устройства)
I целое (integer)
Id интегральное значение идентификатора
L длинный тип (long)
Lp длинный указатель
Lpsz дальний указатель на строку, заканчивающуюся нулевым байтом
m_ переменная класса
N short или int
Np ближний указатель
P указатель
Pfn указатель на функцию
Pst указатель на структуру
Psz указатель на строку, заканчивающуюся нулевым байтом
Pv указатель на тип void
S строка
Sz строка, заканчивающая нуль-символом
U беззнаковый символ
Tm текстовая метрика
V тип void
W беззнаковое целое (word, 16-бит)
x, y короткое целое число (координата x или y)

Часто используемые типы данных Windows:

Тип данных Описание
HANDLE определяет идентификатор; 32-разрядное целое, используемое в качестве дескриптора – числа, определяющего некоторый ресурс
HWND определяет идентификатор окна
HDC определяет идентификатор контекста устройства
LONG 32-битовое целое со знаком
LPSTR определяет линейный указатель
NULL
UINT тип данных Win32 (32 бита для Win32)
WCHAR 16-битовый символ UNICODE. Используется для представления символов языков мира

Создание простейшего Windows-приложения с использованием Win API

Элементы Windows-приложения

Построение приложения Windows включает выполнение следующих этапов:

Простейшая программа. Создание и вывод Windows-окна на экран

Создадим пустой проект Windows- приложения с помощью мастера:

Добавим следующий код:

Скомпилируем и запустим программу. На экране появится Windows-окно.

Комментарии к программе

Функция WinMain(. ) служит точкой входа в приложение. Эта функция отвечает за следующие действия:

Заголовочный файл windows.h нужен для любой традиционной Windows программы на C. Именно в нем содержатся разные определения констант ( WM_DESTROY и т. д.).

Источник

Программирование под Windows с использованием Win API

Основные понятия и термины, используемые при разработке Windows приложений

API (Application Program Interface) — интерфейс прикладных программ (набор функций, сосредоточенных в ядре Windows и дополнительных библиотеках).

DLL (Dynamic Link Libraries) — библиотека динамической компоновки. Функции API содержатся в библиотеках динамической загрузки.

Нотация Windows («венгерская нотация Чарльза Симони»)

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

Некоторые префиксы венгерской нотации:

Префикс Значение
A массив
B логический тип (int)
By беззнаковый символьный тип (byte)
C символьный тип (1 байт)
Cb счетчик байтов
Cr цвет
cx,cy короткий тип (short)
Dbl double (с плавающей точкой)
Dw беззнаковое длинное целое число (dword)
Flt float (вещественная с плавающей точкой)
Fn функция
g_ префикс для глобальной переменной (глобальная переменная)
H handle (беззнаковое целое число)
hDC handle (указатель на контекст устройства)
I целое (integer)
Id интегральное значение идентификатора
L длинный тип (long)
Lp длинный указатель
Lpsz дальний указатель на строку, заканчивающуюся нулевым байтом
m_ переменная класса
N short или int
Np ближний указатель
P указатель
Pfn указатель на функцию
Pst указатель на структуру
Psz указатель на строку, заканчивающуюся нулевым байтом
Pv указатель на тип void
S строка
Sz строка, заканчивающая нуль-символом
U беззнаковый символ
Tm текстовая метрика
V тип void
W беззнаковое целое (word, 16-бит)
x, y короткое целое число (координата x или y)

Часто используемые типы данных Windows:

Тип данных Описание
HANDLE определяет идентификатор; 32-разрядное целое, используемое в качестве дескриптора – числа, определяющего некоторый ресурс
HWND определяет идентификатор окна
HDC определяет идентификатор контекста устройства
LONG 32-битовое целое со знаком
LPSTR определяет линейный указатель
NULL
UINT тип данных Win32 (32 бита для Win32)
WCHAR 16-битовый символ UNICODE. Используется для представления символов языков мира
Читайте также:  Wan miniport ikev2 драйвер windows 7

Создание простейшего Windows-приложения с использованием Win API

Элементы Windows-приложения

Построение приложения Windows включает выполнение следующих этапов:

Простейшая программа. Создание и вывод Windows-окна на экран

Создадим пустой проект Windows- приложения с помощью мастера:

Добавим следующий код:

Скомпилируем и запустим программу. На экране появится Windows-окно.

Комментарии к программе

Функция WinMain(. ) служит точкой входа в приложение. Эта функция отвечает за следующие действия:

Заголовочный файл windows.h нужен для любой традиционной Windows программы на C. Именно в нем содержатся разные определения констант ( WM_DESTROY и т. д.).

Источник

Программирование под Windows с использованием Win API

Основные понятия и термины, используемые при разработке Windows приложений

API (Application Program Interface) — интерфейс прикладных программ (набор функций, сосредоточенных в ядре Windows и дополнительных библиотеках).

DLL (Dynamic Link Libraries) — библиотека динамической компоновки. Функции API содержатся в библиотеках динамической загрузки.

Нотация Windows («венгерская нотация Чарльза Симони»)

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

Некоторые префиксы венгерской нотации:

Префикс Значение
A массив
B логический тип (int)
By беззнаковый символьный тип (byte)
C символьный тип (1 байт)
Cb счетчик байтов
Cr цвет
cx,cy короткий тип (short)
Dbl double (с плавающей точкой)
Dw беззнаковое длинное целое число (dword)
Flt float (вещественная с плавающей точкой)
Fn функция
g_ префикс для глобальной переменной (глобальная переменная)
H handle (беззнаковое целое число)
hDC handle (указатель на контекст устройства)
I целое (integer)
Id интегральное значение идентификатора
L длинный тип (long)
Lp длинный указатель
Lpsz дальний указатель на строку, заканчивающуюся нулевым байтом
m_ переменная класса
N short или int
Np ближний указатель
P указатель
Pfn указатель на функцию
Pst указатель на структуру
Psz указатель на строку, заканчивающуюся нулевым байтом
Pv указатель на тип void
S строка
Sz строка, заканчивающая нуль-символом
U беззнаковый символ
Tm текстовая метрика
V тип void
W беззнаковое целое (word, 16-бит)
x, y короткое целое число (координата x или y)

Часто используемые типы данных Windows:

Тип данных Описание
HANDLE определяет идентификатор; 32-разрядное целое, используемое в качестве дескриптора – числа, определяющего некоторый ресурс
HWND определяет идентификатор окна
HDC определяет идентификатор контекста устройства
LONG 32-битовое целое со знаком
LPSTR определяет линейный указатель
NULL
UINT тип данных Win32 (32 бита для Win32)
WCHAR 16-битовый символ UNICODE. Используется для представления символов языков мира

Создание простейшего Windows-приложения с использованием Win API

Элементы Windows-приложения

Построение приложения Windows включает выполнение следующих этапов:

Простейшая программа. Создание и вывод Windows-окна на экран

Создадим пустой проект Windows- приложения с помощью мастера:

Добавим следующий код:

Скомпилируем и запустим программу. На экране появится Windows-окно.

Комментарии к программе

Функция WinMain(. ) служит точкой входа в приложение. Эта функция отвечает за следующие действия:

Заголовочный файл windows.h нужен для любой традиционной Windows программы на C. Именно в нем содержатся разные определения констант ( WM_DESTROY и т. д.).

Источник

Пошаговое руководство. Вызов API Windows (Visual Basic) Walkthrough: Calling Windows APIs (Visual Basic)

Преимущество использования API-интерфейсов Windows в коде состоит в том, что они могут сэкономить время разработки, поскольку они содержат десятки полезных функций, которые уже написаны и ожидают использования. The advantage of using Windows APIs in your code is that they can save development time because they contain dozens of useful functions that are already written and waiting to be used. Недостаток заключается в том, что API Windows может быть трудно работать с и унфоргивинг в случае неправильной работы. The disadvantage is that Windows APIs can be difficult to work with and unforgiving when things go wrong.

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. The Visual Studio edition that you have and the settings that you use determine these elements. Дополнительные сведения см. в разделе Персонализация среды IDE. For more information, see Personalizing the IDE.

Вызовы API с помощью Declare API Calls Using Declare

Наиболее распространенным способом вызова API Windows является использование Declare инструкции. The most common way to call Windows APIs is by using the Declare statement.

Объявление процедуры DLL To declare a DLL procedure

Определите имя функции, которую необходимо вызвать, а также ее аргументы, типы аргументов и возвращаемое значение, а также имя и расположение библиотеки DLL, содержащей ее. Determine the name of the function you want to call, plus its arguments, argument types, and return value, as well as the name and location of the DLL that contains it.

Полные сведения о API Windows см. в документации по пакету SDK для Win32 в Windows API Platform SDK. For complete information about the Windows APIs, see the Win32 SDK documentation in the Platform SDK Windows API. Дополнительные сведения о константах, используемых API Windows, см. в файлах заголовков, таких как Windows. h, входящих в состав пакета Platform SDK. For more information about the constants that Windows APIs use, examine the header files such as Windows.h included with the Platform SDK.

Выберите приложение Windows в списке шаблонов проектов Visual Basic. Select Windows Application from the list of Visual Basic project templates. Отобразится новый проект. The new project is displayed.

Читайте также:  Key windows 10 pro ключ

Добавьте следующую Declare функцию либо в класс, либо в модуль, в котором требуется использовать библиотеку DLL: Add the following Declare function either to the class or module in which you want to use the DLL:

Части инструкции DECLARE Parts of the Declare Statement

Declare Инструкция включает следующие элементы. The Declare statement includes the following elements.

Модификатор Auto Auto modifier

Auto Модификатор указывает среде выполнения преобразовать строку на основе имени метода в соответствии с правилами среды CLR (или именем псевдонима, если оно указано). The Auto modifier instructs the runtime to convert the string based on the method name according to common language runtime rules (or alias name if specified).

Ключевые слова lib и Alias Lib and Alias keywords

Имя, следующее за Function ключевым словом, — это имя, которое программа использует для доступа к импортируемой функции. The name following the Function keyword is the name your program uses to access the imported function. Оно может совпадать с реальным именем вызываемой функции, или можно использовать любое допустимое имя процедуры, а затем применить Alias ключевое слово, чтобы указать реальное имя вызываемой функции. It can be the same as the real name of the function you are calling, or you can use any valid procedure name and then employ the Alias keyword to specify the real name of the function you are calling.

Укажите Lib ключевое слово, а затем имя и расположение библиотеки DLL, содержащей вызываемую функцию. Specify the Lib keyword, followed by the name and location of the DLL that contains the function you are calling. Указывать путь к файлам, расположенным в системных каталогах Windows, не требуется. You do not need to specify the path for files located in the Windows system directories.

Используйте Alias ключевое слово, если имя вызываемой функции не является допустимым Visual Basic именем процедуры или конфликтует с именами других элементов в приложении. Use the Alias keyword if the name of the function you are calling is not a valid Visual Basic procedure name, or conflicts with the name of other items in your application. Alias Указывает на истинное имя вызываемой функции. Alias indicates the true name of the function being called.

Объявления аргументов и типов данных Argument and Data Type Declarations

Объявите аргументы и их типы данных. Declare the arguments and their data types. Эта часть может быть сложной, поскольку типы данных, используемые Windows, не соответствуют типам данных Visual Studio. This part can be challenging because the data types that Windows uses do not correspond to Visual Studio data types. Visual Basic выполняет большой объем работы, преобразуя аргументы в совместимые типы данных, процесс, называемый упаковкой. Visual Basic does a lot of the work for you by converting arguments to compatible data types, a process called marshaling. Можно явно управлять упаковкой аргументов с помощью MarshalAsAttribute атрибута, определенного в System.Runtime.InteropServices пространстве имен. You can explicitly control how arguments are marshaled by using the MarshalAsAttribute attribute defined in the System.Runtime.InteropServices namespace.

Константы Windows API Windows API Constants

Некоторые аргументы являются сочетаниями констант. Some arguments are combinations of constants. Например, API, MessageBox показанный в этом пошаговом руководстве, принимает целочисленный аргумент Typ с именем, который управляет отображением окна сообщения. For example, the MessageBox API shown in this walkthrough accepts an integer argument called Typ that controls how the message box is displayed. Можно определить числовое значение этих констант, изучив #define инструкции в файле WinUser. h. You can determine the numeric value of these constants by examining the #define statements in the file WinUser.h. Числовые значения обычно отображаются в шестнадцатеричном виде, поэтому для их добавления и преобразования в десятичный формат может потребоваться калькулятор. The numeric values are generally shown in hexadecimal, so you may want to use a calculator to add them and convert to decimal. Например, если вы хотите объединить константы для стиля с восклицательным знаком MB_ICONEXCLAMATION 0x00000030, а стиль «да/нет MB_YESNO », можно добавить числа и получить результат 0x00000034 или 52 Decimal. For example, if you want to combine the constants for the exclamation style MB_ICONEXCLAMATION 0x00000030 and the Yes/No style MB_YESNO 0x00000004, you can add the numbers and get a result of 0x00000034, or 52 decimal. Хотя вы можете использовать десятичный результат непосредственно, лучше объявить эти значения как константы в приложении и объединить их с помощью Or оператора. Although you can use the decimal result directly, it is better to declare these values as constants in your application and combine them using the Or operator.

Объявление констант для вызовов API Windows To declare constants for Windows API calls

Используйте текстовый редактор, например Блокнот, для просмотра содержимого файла заголовка (. h) и поиска значений, связанных с используемыми константами. Use a text editor, such as Notepad, to view the contents of the header (.h) file, and find the values associated with the constants you are using. Например, MessageBox API использует константу MB_ICONQUESTION для отображения вопросительного знака в окне сообщения. For example, the MessageBox API uses the constant MB_ICONQUESTION to show a question mark in the message box. Определение для MB_ICONQUESTION находится в файле WinUser. h и выглядит следующим образом: The definition for MB_ICONQUESTION is in WinUser.h and appears as follows:

Читайте также:  Dg31pr установка windows 10

#define MB_ICONQUESTION 0x00000020L

Добавьте эквивалентные Const операторы в класс или модуль, чтобы сделать эти константы доступными для приложения. Add equivalent Const statements to your class or module to make these constants available to your application. Пример: For example:

Вызов процедуры DLL To call the DLL procedure

Добавьте кнопку с именем Button1 в форму запуска проекта, а затем дважды щелкните ее, чтобы просмотреть код. Add a button named Button1 to the startup form for your project, and then double-click it to view its code. Появится обработчик событий для кнопки. The event handler for the button is displayed.

Добавьте код в Click обработчик событий для добавленной кнопки, чтобы вызвать процедуру и предоставить соответствующие аргументы: Add code to the Click event handler for the button you added, to call the procedure and provide the appropriate arguments:

Маршалирование данных Data Marshaling

Visual Basic автоматически преобразует типы данных параметров и возвращаемые значения для вызовов API Windows, но можно использовать MarshalAs атрибут, чтобы явно указать неуправляемые типы данных, которые ОЖИДАЕТ API. Visual Basic automatically converts the data types of parameters and return values for Windows API calls, but you can use the MarshalAs attribute to explicitly specify unmanaged data types that an API expects. Дополнительные сведения о маршалинге взаимодействия см. в разделе Маршалинг взаимодействия. For more information about interop marshaling, see Interop Marshaling.

Использование Declare и MarshalAs в вызове API To use Declare and MarshalAs in an API call

Определите имя функции, которую необходимо вызвать, а также ее аргументы, типы данных и возвращаемое значение. Determine the name of the function you want to call, plus its arguments, data types, and return value.

Чтобы упростить доступ к MarshalAs атрибуту, добавьте Imports оператор в начало кода для класса или модуля, как показано в следующем примере: To simplify access to the MarshalAs attribute, add an Imports statement to the top of the code for the class or module, as in the following example:

Добавьте прототип функции для импортированной функции в класс или модуль, который вы используете, и примените MarshalAs атрибут к параметрам или возвращаемому значению. Add a function prototype for the imported function to the class or module you are using, and apply the MarshalAs attribute to the parameters or return value. В следующем примере вызов API, который принимает тип, void* маршалируется как AsAny : In the following example, an API call that expects the type void* is marshaled as AsAny :

Вызовы API с помощью DllImport API Calls Using DllImport

DllImport Атрибут предоставляет второй способ вызова функций в библиотеках DLL без библиотек типов. The DllImport attribute provides a second way to call functions in DLLs without type libraries. DllImport примерно эквивалентно использованию оператора, Declare но обеспечивает более полный контроль над вызовом функций. DllImport is roughly equivalent to using a Declare statement but provides more control over how functions are called.

DllImport С большинством вызовов API Windows можно использовать, если вызов ссылается на общий (иногда называемый статическим) метод. You can use DllImport with most Windows API calls as long as the call refers to a shared (sometimes called static) method. Нельзя использовать методы, для которых требуется экземпляр класса. You cannot use methods that require an instance of a class. В отличие от Declare инструкций DllImport вызовы не могут использовать MarshalAs атрибут. Unlike Declare statements, DllImport calls cannot use the MarshalAs attribute.

Вызов API Windows с помощью атрибута DllImport To call a Windows API using the DllImport attribute

Выберите приложение Windows в списке шаблонов проектов Visual Basic. Select Windows Application from the list of Visual Basic project templates. Отобразится новый проект. The new project is displayed.

Добавьте кнопку с именем Button2 в форму запуска. Add a button named Button2 to the startup form.

Дважды щелкните, Button2 чтобы открыть представление кода для формы. Double-click Button2 to open the code view for the form.

Примените Public Shared модификаторы и к объявлению функции и задайте параметры в MoveFile зависимости от аргументов, используемых функцией Windows API: Apply the Public and Shared modifiers to the function declaration and set parameters for MoveFile based on the arguments the Windows API function uses:

Функция может иметь любое допустимое имя процедуры; DllImport атрибут указывает имя в библиотеке DLL. Your function can have any valid procedure name; the DllImport attribute specifies the name in the DLL. Он также обрабатывает упаковку взаимодействия для параметров и возвращаемых значений, поэтому можно выбирать типы данных Visual Studio, аналогичные типам данных, используемым API. It also handles interoperability marshaling for the parameters and return values, so you can choose Visual Studio data types that are similar to the data types the API uses.

Добавьте код в Button2_Click обработчик событий для вызова функции: Add code to the Button2_Click event handler to call the function:

Создайте файл с именем Test.txt и поместите его в каталог К:\тмп на жестком диске. Create a file named Test.txt and place it in the C:\Tmp directory on your hard drive. При необходимости создайте каталог tmp. Create the Tmp directory if necessary.

Нажмите клавишу F5 для запуска приложения. Press F5 to start the application. Откроется Главная форма. The main form appears.

Нажмите кнопку Button2. Click Button2. Если файл можно переместить, отображается сообщение «файл перемещен успешно». The message «The file was moved successfully» is displayed if the file can be moved.

Источник

Поделиться с друзьями
Советы экспертов и специалистов
Adblock
detector