DllImportAttribute 클래스

정의

특성 사용 메서드가 관리되지 않는 DLL(동적 연결 라이브러리)에 의해 정적 진입점으로 노출된다는 것을 나타냅니다.Indicates that the attributed method is exposed by an unmanaged dynamic-link library (DLL) as a static entry point.

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

예제

다음 코드 예제에서는 DllImportAttribute 특성을 사용 하 여 Win32 MessageBox 함수를 가져오는 방법을 보여 줍니다.The following code example shows how to use the DllImportAttribute attribute to import the Win32 MessageBox function. 다음 코드 예제에서는 가져온된 메서드를 호출 합니다.The code example then calls the imported method.

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

설명

메서드에이 특성을 적용할 수 있습니다.You can apply this attribute to methods.

DllImportAttribute 특성은 관리 되지 않는 DLL에서 내보낸 함수를 호출 하는 데 필요한 정보를 제공 합니다.The DllImportAttribute attribute provides the information needed to call a function exported from an unmanaged DLL. 최소한, 진입점을 포함 하는 DLL의 이름을 제공 해야 합니다.As a minimum requirement, you must supply the name of the DLL containing the entry point.

이 특성은 및 C# C++ 메서드 정의에 직접 적용 됩니다. 그러나 Visual Basic 컴파일러는 Declare 문을 사용할 때이 특성을 내보냅니다.You apply this attribute directly to C# and C++ method definitions; however, the Visual Basic compiler emits this attribute when you use the Declare statement. BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError또는 ThrowOnUnmappableChar 필드를 포함 하는 복잡 한 메서드 정의의 경우이 특성을 Visual Basic 메서드 정의에 직접 적용 합니다.For complex method definitions that include BestFitMapping, CallingConvention, ExactSpelling, PreserveSig, SetLastError, or ThrowOnUnmappableChar fields, you apply this attribute directly to Visual Basic method definitions.

참고 JScript에서는이 특성을 지원 하지 않습니다.Note JScript does not support this attribute. JScript 프로그램에서 관리 되지 않는 API 메서드에 액세스 하는 C# 또는 Visual Basic 래퍼 클래스를 사용할 수 있습니다.You can use C# or Visual Basic wrapper classes to access unmanaged API methods from JScript programs.

플랫폼 호출 서비스를 사용 하 여 관리 되지 않는 Dll의 함수에 액세스 하는 방법은 관리 되지 않는 Dll 함수사용을 참조 하세요.For additional information about using the platform invoke service to access functions in unmanaged DLLs, see Consuming Unmanaged DLL Functions.

참고

DllImportAttribute 제네릭 형식의 마샬링을 지원 하지 않습니다.The DllImportAttribute does not support marshaling of generic types.

생성자

DllImportAttribute(String)

가져올 메서드가 포함된 DLL의 이름을 사용하여 DllImportAttribute 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the DllImportAttribute class with the name of the DLL containing the method to import.

필드

BestFitMapping

유니코드 문자를 ANSI 문자로 변환할 때 가장 적합된 한 매핑 동작을 사용할지 설정 합니다.Enables or disables best-fit mapping behavior when converting Unicode characters to ANSI characters.

CallingConvention

진입점의 호출 규칙을 나타냅니다.Indicates the calling convention of an entry point.

CharSet

문자열 매개 변수를 메서드로 마샬링하는 방법을 지정하고 이름 관리를 제어합니다.Indicates how to marshal string parameters to the method and controls name mangling.

EntryPoint

호출할 DLL 진입점의 이름 또는 서수를 나타냅니다.Indicates the name or ordinal of the DLL entry point to be called.

ExactSpelling

CharSet 필드로 인해 공용 언어 런타임이 지정된 이름 이외의 진입점 이름을 관리되지 않는 DLL에서 검색할지 여부를 제어합니다.Controls whether the CharSet field causes the common language runtime to search an unmanaged DLL for entry-point names other than the one specified.

PreserveSig

HRESULT 또는 retval 반환 값이 있는 관리되지 않는 메서드가 직접 변환되는지 아니면 HRESULT 또는 retval 반환 값이 자동으로 예외로 변환되는지 여부를 나타냅니다.Indicates whether unmanaged methods that have HRESULT or retval return values are directly translated or whether HRESULT or retval return values are automatically converted to exceptions.

SetLastError

특성 사용 메서드에서 반환하기 전에 호출 수신자가 SetLastError Windows API 함수를 호출할지 여부를 나타냅니다.Indicates whether the callee calls the SetLastError Windows API function before returning from the attributed method.

ThrowOnUnmappableChar

에 ANSI로 변환 되는 유니코드 문자가 나오면 예외를 throw 하는 사용 하지 않도록 설정 하거나 "?" 문자입니다.Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI "?" character.

속성

TypeId

파생 클래스에서 구현될 때 이 Attribute의 고유 식별자를 가져옵니다.When implemented in a derived class, gets a unique identifier for this Attribute.

(다음에서 상속됨 Attribute)
Value

진입점을 포함하는 DLL 파일의 이름을 가져옵니다.Gets the name of the DLL file that contains the entry point.

메서드

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.Returns a value that indicates whether this instance is equal to a specified object.

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

이 인스턴스의 해시 코드를 반환합니다.Returns the hash code for this instance.

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

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

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

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

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

파생된 클래스에서 재정의할 경우,이 인스턴스가 지정된 된 개체와 같은지 여부를 나타내는 값을 반환 합니다.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

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

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

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

현재 개체를 나타내는 string을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

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

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.Maps a set of names to a corresponding set of dispatch identifiers.

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

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.Retrieves the type information for an object, which can be used to get the type information for an interface.

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

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

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

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.Provides access to properties and methods exposed by an object.

(다음에서 상속됨 Attribute)

적용 대상

추가 정보