Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на 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

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

Решения .NET
Операторы Imports и using
Использование провайдеров дополнительных свойств
Применение переменных ссылочных типов
Перегрузка членов
Добавление элементов управления на панель Toolbox
Добавление элементов управления на панель Toolbox
Динамические свойства
Строительные блоки .NET
Установка порядка передачи фокуса при нажатии клавиши Tab
Конструирование меню во время разработки
Доступ к общим членам
Декларативная защита по правам доступа к коду
Отображение текста
Модель защиты, основанная на ролях
| .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 31


     



Rambler

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

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