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


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

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

Managed Control Panel Items
Преобразование типов
Добавление элементов управления на панель Toolbox
Конструирование меню во время разработки
Проверка разрешений, запрашиваемых установленной сборкой
Создание проекта установочной программы
Реализация специальных возможностей на этапе проектирования
Извлечение из сопутствующих сборок ресурсов, специфичных для культуры
Редактор пользовательского интерфейса
Вложенные типы
Доступ к общим членам
Параметризованные свойства
Интерфейсы CTS
Cabinet File (*.CAB) Compression and Extraction – версия 9.9
Команды для манипулирования данными
| .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's Top100

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

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