ТОП 10:

Применение экспортированных функций DLL



9. Идентифицируйте функции в DLL.

Как минимум, должно быть указано имя функции и имя библиотеки DLL, содержащей функцию.

10. Создайте класс для хранения функций DLL.

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

11. Создайте прототипы в управляемом коде.

[Visual Basic] Используйте инструкцию Declare с ключевыми словами Function и Lib.В некоторых редких случаях можно использовать классDllImportAttribute с ключевыми словами Shared Function.Эти случаи объясняются далее в этом разделе.

[C#] Чтобы идентифицировать DLL и функцию, используйте класс DllImportAttribute.Пометьте метод модификаторами static и extern.

[C++] Чтобы идентифицировать DLL и функцию, используйте класс DllImportAttribute.Пометьте метод или функцию оболочки модификатором extern "C".

12. Вызовите функцию DLL.

 

Пример использования функции MessageBox c++ Win32 API из user32.dll

 

public class Win32

{

[DllImport("user32.dll", CharSet = CharSet.Auto)]

public static extern IntPtr MessageBox(int hWnd, String text, String caption, uint type);

}

public class HelloWorld

{

public static void Main()

{

Win32.MessageBox(0, "Hello World", "Platform Invoke Sample", 0);

}

}

 

9. Виды циклов в языке С#. Синтаксис, объявление, применение циклов в языке С#.

Итерационные операторы

Итерационные операторы применяются в программах С# для выполнения каких-либо

повторяющихся действий, т. е. для организации циклов. Иногда эти операторы назы-

называются циклическими.

В этом разделе мы расскажем об использовании итерационных операторов for,

while, do и f oreach.

 

Оператор for

Оператор for предназначен для повторного выполнения оператора или группы опера-

операторов заданное количество раз. Вот как выглядит этот оператор в общем виде:

for ( [Инициализация]; [Условие];[Приращение])

<Оператор>

Оператор [Инициализация] выполняется один раз перед началом цикла.

Перед каждой итерацией (т.е. перед каждым выполнением тела цикла «Эпера-

тор>) проверяется [Условие]. И наконец, после каждой итерации выполняется опе-

оператор [Прирашение].

Как правило, в цикле имеется переменная, играющая роль так называемой пере-

переменной цикла. При каждой итерации переменная цикла изменяет свое значение в за-

заданных пределах.

Начальное значение переменной цикла задается в программе до оператора for или

в операторе [Инициализация]. Предельное значение переменной цикла определяется

оператором приращения, а проверка ее текущего значения — в блоке [ Условие ].

Поясним сказанное на простом примере.

int i ;

forfi = 0; i < 10; i++)

{

System.Console.Write("{0} ",i ) ;

}

Здесь переменная i используется в качестве переменной цикла. Перед началом

цикла ей присваивается нулевое значение. Перед каждой итерацией содержимое пере-

переменной i сравнивается с числом 10. Если i меньше 10, тело цикла выполняется один

раз. В тело цикла мы поместили вызов метода Write, отображающий текущее значе-

значение переменной цикла на консоли.

После выполнения тела цикла значение i увеличивается на единицу в блоке при-

приращения. Далее переменная цикла вновь сравнивается с числом 10. Когда значение i

превысит 10, цикл завершится.

Таким образом, параметр цикла анализируется перед выполнением тела цикла,

а модифицируется после его выполнения.

Вот что выведет на консоль приведенный выше фрагмент программы:

 

Прерывание цикла

С помощью оператора break можно в любой момент прервать выполнение цикла.

Например, в следующем фрагменте программы мы прерываем работу цикла, когда

значение переменной i становится больше пяти:

for(i = 0; i < 10;

if(i > 5)

break;

System. Console. Write (" {0} "',i );

 

Возобновление цикла

В отличие от оператора break, прерывающего цикл, оператор continue позволяет

возобновить выполнение цикла с самого начала.

Вот как он используется:

for(i = 0;;

System.Console.Write("{0} ",i ) ;

if(i < 9)

continue;

else

break;

}

 







Последнее изменение этой страницы: 2017-01-26; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.232.51.69 (0.012 с.)