다음을 통해 공유


방법: Windows API 호출(Visual Basic)

이 예제에서는 user32.dll에서 MessageBox 함수를 정의하여 호출한 다음 문자열을 전달합니다.

예제

' Defines the MessageBox function. 
Public Class Win32
    Declare Auto Function MessageBox Lib "user32.dll" (
        ByVal hWnd As Integer, ByVal txt As String,
        ByVal caption As String, ByVal Type As Integer
        ) As Integer 
End Class 

' Calls the MessageBox function. 
Public Class DemoMessageBox
    Public Shared Sub Main()
        Win32.MessageBox(0, "Here's a MessageBox", "Platform Invoke Sample", 0)
    End Sub 
End Class

코드 컴파일

이 예제에는 다음 사항이 필요합니다.

  • System 네임스페이스에 대한 참조

강력한 프로그래밍

다음 조건에서 예외가 발생할 수 있습니다.

  • 메서드가 static이 아닌 abstract이거나 이전에 정의된 경우. 부모 형식이 인터페이스이거나 name 또는 dllName의 길이가 0인 경우 (ArgumentException)

  • name 또는 dllName이 Nothing인 경우 (ArgumentNullException)

  • 포함하는 형식이 이전에 CreateType을 사용하여 이미 만들어진 경우 (InvalidOperationException)

참고 항목

작업

연습: Windows API 호출(Visual Basic)

개념

플랫폼 호출

플랫폼 호출 예제

관리되지 않는 DLL 함수 사용

리플렉션 내보내기를 사용하여 메서드 정의

기타 리소스

COM Interop(Visual Basic)