Иллюстрированный самоучитель по VB.NET

       

Вызовы функций DLL


Хотя при вызове функций DLL можно использовать старый синтаксис Declare, в .NET рекомендуется использовать другой способ — атрибут Oil Import, позволяющий создавать общие точки входа. Для этого в программе определяется пустая функция, совпадающая по сигнатуре с вызываемой функцией. Ниже приведен пример использования атрибута Dll Import.

Imports System.Drawing

Imports System.Runtime.InteropServices

Module Modulel

' Импортировать функцию CreateDC из Win32 API

<Dll Import("gdi32.dll")>

Public Function CreateDC(ByVal strDhver _

As String. ByVal strDeviceName As String,_

ByVal strOutput As String. ByVal nullDEVICE As Integer _ )

As 'IntPtr

End Function

Sub Main()

' Создать прямоугольник



Dim rctWindow As Rectangle = New Rectangle(100, 100, 200, 200)

Dim penBlack As Pen = New PerUColor.Black)

penBlack.Brush = Brushes.DarkKham

Dim grfx As Graphics

Dim hDC As IntPtr = CreateDC("DISPLAY". vbNullString,

vbNullString. vbNullString)

grfx = Graphics.FromHdc(hDC)

Do While (True)

grfx.FillRectangle(penBlack.Brush, rctWindow)

System.Threading.Thread.Sleep(0)

Loop

End Sub

End Module

Другое принципиальное отличие атрибута Dll Import от ключевого слова Declare заключается в том, что Dll Import позволяет лучше управлять отдельными аспектами вызова. В частности, при вызове функции можно указать конвенцию передачи параметров, и кодировку для передачи строковых параметров.



Содержание раздела