DllImportAttribute DllImportAttribute DllImportAttribute DllImportAttribute Class

定義

属性付きメソッドがアンマネージ DLL (Dynamic-Link Library) によって静的エントリ ポイントとして公開されることを示します。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
継承
DllImportAttributeDllImportAttributeDllImportAttributeDllImportAttribute
属性

次のコード例を使用する方法を示しています、 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
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. 含む複雑なメソッド定義のBestFitMappingCallingConventionExactSpellingPreserveSigSetLastError、または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) DllImportAttribute(String) DllImportAttribute(String) DllImportAttribute(String)

DllImportAttribute クラスの新しいインスタンスを、インポートするメソッドを格納した DLL の名前を使用して初期化します。Initializes a new instance of the DllImportAttribute class with the name of the DLL containing the method to import.

フィールド

BestFitMapping BestFitMapping BestFitMapping BestFitMapping

Unicode 文字を ANSI 文字に変換するときの、最適マッピング動作のオン/オフを切り替えます。Enables or disables best-fit mapping behavior when converting Unicode characters to ANSI characters.

CallingConvention CallingConvention CallingConvention CallingConvention

エントリ ポイントの呼び出し規約を示します。Indicates the calling convention of an entry point.

CharSet CharSet CharSet CharSet

文字列パラメーターをメソッドにマーシャリングし、名前マングルを制御する方法を示します。Indicates how to marshal string parameters to the method and controls name mangling.

EntryPoint EntryPoint EntryPoint EntryPoint

呼び出す DLL エントリ ポイントの名前または序数を指定します。Indicates the name or ordinal of the DLL entry point to be called.

ExactSpelling ExactSpelling ExactSpelling 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 PreserveSig PreserveSig 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 SetLastError SetLastError

属性付きメソッドから戻る前に、呼び出し先が SetLastError Windows API 関数を呼び出すかどうかを示します。Indicates whether the callee calls the SetLastError Windows API function before returning from the attributed method.

ThrowOnUnmappableChar ThrowOnUnmappableChar ThrowOnUnmappableChar ThrowOnUnmappableChar

マップできない Unicode 文字 (ANSI の "?" に変換される文字) が見つかったときに、例外をスローするかどうかを指定します。Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI "?" character.

プロパティ

TypeId TypeId TypeId TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)
Value Value Value Value

エントリ ポイントを含む DLL ファイルの名前を取得します。Gets the name of the DLL file that contains the entry point.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

明示的なインターフェイスの実装

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

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

適用対象

こちらもご覧ください