DllImportAttribute 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
관리되지 않는 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 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 |
반환 값이 있는 관리되지 않는 메서드가 |
SetLastError |
호출 수신자가 특성화된 메서드에서 반환하기 전에 오류( |
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) |
적용 대상
추가 정보
.NET