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. MessageBoxThe 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. Для доступа к C# неуправляемым методам API из программ JScript можно использовать или 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 с именем динамической библиотеки (DLL), содержащей импортируемый метод.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

Контролирует запуск поиска имен точек входа помимо заданной точки в неуправляемой динамической библиотеке (DLL), выполняемого средой CLR, полем CharSet.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.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()

Возвращает строку, представляющую текущий объект.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)

Применяется к

Дополнительно