* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Вызов функций Windows API
8 февраля 2009

После появления .NET Framework возможность напрямую работать с встроенными
функциями операционной системы уже не так важна, как раньше. Для ключевых
функций Windows API созданы оболочки в виде .NET-классов. обеспечивающие
контроль типов и исключающие ошибки при вызове функций ОС.
Тем не менее время от времени вызывать неуправляемые функции все же при-
ходится. Для импорта встроенных функций ОС служит ключевое слово Declare (в
Visual Basic .NET) и атрибут DHImportAttribute (в Visual C#). Импортированную фун-
кцию можно использовать в своем приложении, как обычную. Например, объявить
функцию Windows API Beep:
Visual Basic .NET
Private Declare Function Beep Lib "kerne!32" (ByVal dwFreq As
Integer, ByVal dwDuration As Integer) As Integer
Visual C#
[System. Runtime.InteropServices.DllI[Hport("kernel32")]
private static extern int Beep(int dwFreq, int dwDuration);
Это объявление включает модификатор доступа (Private или private), определяю-
щий уровень доступа к этой функции в приложении. В Visual Basic .NET внешнюю
функцию указывают с помощью ключевого слова Declare, а в Visual C# — с помо-
щью ключевых слов static и extern (для объявления функций API необходимы оба
этих слова). В Visual C# любую внешнюю функцию необходимо предварять атрибу-
том Dill'троп'Attribute, указывающим имя библиотеки, в которой находится импор-
тируемая функция. В Visual Basic .NET имя DLL задают в виде строки после ключе-
вого слова Lib. Объявление также включает имя функции (в данном случае Веер),
под которым она существует в DLL (это имя чувствительно к регистру). Кроме того,
сигнатура и тип возвращаемого значения у внешней и внутренней функций долж-
ны быть идентичными.
Примечание В Visual Basic .NET имена многих типов изменились по сравнению с
Visual Basic 6 (например, прежний тип Long теперь стал Integer) — не забывайте об
этом при объявлении внешних функций.
Внешнюю функцию разрешается вызвать, как обычную функцию.
> Как объявить внешнюю функцию на Visual Basic .NET
Для этого применяют ключевое слово Declare. Ключевое слово Lib указывает DLL,
из которой импортируют функцию, имя и сигнатура этой функции должны быть
полностью идентичными таковым внешней функции.
> Как объявить внешнюю функцию на Visual C#
Воспользуйтесь атрибутом DlllmportAttribute из пространства имен System.Runtime.InteropServices,
чтобы указать DLL, откуда импортируется функция. В объявлении
функции необходимы ключевые слова static и extern, а ее имя и сигнатура должны
быть идентичными таковым внешней функции.

Теги: .NET

Статьи по теме:

Наборы
Перебор элементов массивов и наборов
Работа с фокусом ввода
Использование шаблонов кода
Реализация свойств
Automatically Starting your Application on Windows Mobile
Проект установочной программы
Класс DataViewManager
Создание составных элементов управления
Языки программирования .NET
Применение класса XmlDataDocument
Применение типов данных
Строительные блоки .NET
Пошаговое исполнение кода
Создание конфигурационного файла
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Вызов функций Windows API. Регион сайта: Москва и Санкт-Петербург