DllImportAttribute 클래스

정의

관리되지 않는 DLL(동적 연결 라이브러리)에서 특성 사용 해당 메서드를 정적 진입점으로 노출함을 나타냅니다.

public ref class DllImportAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
public sealed class DllImportAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DllImportAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
type DllImportAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DllImportAttribute = class
    inherit Attribute
Public NotInheritable Class DllImportAttribute
Inherits Attribute
상속
DllImportAttribute
특성

예제

다음 코드 예제에서는 특성을 사용하여 DllImportAttribute Win32 MessageBox 함수를 가져오는 방법을 보여줍니다. 그런 다음 코드 예제는 가져온 메서드를 호출합니다.

using System;
using System.Runtime.InteropServices;

class Example
{
    // Use DllImport to import the Win32 MessageBox function.
    [DllImport("user32.dll", CharSet = CharSet.Unicode)]
    public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);
    
    static void Main()
    {
        // Call the MessageBox function using platform invoke.
        MessageBox(new IntPtr(0), "Hello World!", "Hello Dialog", 0);
    }
}
Imports System.Runtime.InteropServices

Module Example

    ' Use DllImport to import the Win32 MessageBox function.
    <DllImport("user32.dll", CharSet:=CharSet.Unicode)> _
    Function MessageBox(ByVal hwnd As IntPtr, ByVal t As String, ByVal caption As String, ByVal t2 As UInt32) As Integer
    End Function


    Sub Main()
        ' Call the MessageBox function using platform invoke.
        MessageBox(New IntPtr(0), "Hello World!", "Hello Dialog", 0)
    End Sub

End Module

설명

메서드에 이 특성을 적용할 수 있습니다.

특성은 DllImportAttribute 관리되지 않는 DLL에서 내보낸 함수를 호출하는 데 필요한 정보를 제공합니다. 최소 요구 사항으로 진입점을 포함하는 DLL의 이름을 제공해야 합니다.

C# 및 C++ 메서드 정의에 이 특성을 직접 적용합니다. 그러나 Visual Basic 컴파일러는 문을 사용할 때 이 특성을 내보낸다 Declare . , , , CallingConvention, SetLastErrorExactSpellingPreserveSig또는 ThrowOnUnmappableChar 필드를 포함하는 BestFitMapping복잡한 메서드 정의의 경우 Visual Basic 메서드 정의에 이 특성을 직접 적용합니다.

참고 JScript는 이 특성을 지원하지 않습니다. C# 또는 Visual Basic 래퍼 클래스를 사용하여 JScript 프로그램에서 관리되지 않는 API 메서드에 액세스할 수 있습니다.

플랫폼 호출 서비스를 사용하여 관리되지 않는 DLL의 함수에 액세스하는 방법에 대한 자세한 내용은 관리되지 않는 DLL 함수 사용을 참조하세요.

참고

DllImportAttribute 제네릭 형식의 마샬링을 지원하지 않습니다.

생성자

DllImportAttribute(String)

가져올 메서드가 포함된 DLL의 이름을 사용하여 DllImportAttribute 클래스의 새 인스턴스를 초기화합니다.

필드

BestFitMapping

유니코드 문자를 ANSI 문자로 변환할 때 가장 적합한 매핑 동작을 활성화 또는 비활성화합니다.

CallingConvention

진입점의 호출 규칙을 나타냅니다.

CharSet

문자열 매개 변수를 메서드로 마샬링하는 방법을 지정하고 이름 관리를 제어합니다.

EntryPoint

호출할 DLL 진입점의 이름 또는 서수를 나타냅니다.

ExactSpelling

CharSet 필드로 인해 공용 언어 런타임이 지정된 이름 이외의 진입점 이름을 관리되지 않는 DLL에서 검색할지 여부를 제어합니다.

PreserveSig

반환 값이 있는 관리되지 않는 메서드가 HRESULT 직접 변환되는지 또는 반환 값이 자동으로 예외로 변환되는지 여부를 HRESULT 나타냅니다.

SetLastError

호출 수신자가 특성화된 메서드에서 반환하기 전에 오류(SetLastError Windows 또는 errno 다른 플랫폼에서)를 설정하는지 여부를 나타냅니다.

ThrowOnUnmappableChar

ANSI "?" 문자로 변환되는 매핑할 수 없는 유니코드 문자가 나오면 예외를 throw하거나 throw하지 않습니다.

속성

TypeId

파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다.

(다음에서 상속됨 Attribute)
Value

진입점을 포함하는 DLL 파일의 이름을 가져옵니다.

메서드

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.

(다음에서 상속됨 Attribute)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
IsDefaultAttribute()

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.

(다음에서 상속됨 Attribute)
Match(Object)

파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).

(다음에서 상속됨 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.

(다음에서 상속됨 Attribute)

적용 대상

추가 정보