DllImportAttribute.ExactSpelling Alan

Tanım

Alanın ortak dil çalışma zamanının yönetilmeyen DLL'de belirtilenden farklı giriş noktası adları aramasına neden olup olmadığını CharSet denetler.

public: bool ExactSpelling;
public bool ExactSpelling;
val mutable ExactSpelling : bool
Public ExactSpelling As Boolean 

Alan Değeri

Örnekler

Bazı durumlarda, Visual Basic geliştiriciler yönetilen kodda bir DLL işlevi tanımlamak için DllImportAttribute deyimi yerine Declare kullanır. ExactSpelling Alanı ayarlamak bu durumlardan biridir.

[DllImport("user32.dll", CharSet = CharSet::Ansi, ExactSpelling = true)]
int MessageBoxA(IntPtr hWnd, String^ Text,
    String^ Caption, unsigned int Type);
internal static class NativeMethods
{
    [DllImport("user32.dll", CharSet = CharSet.Unicode,
        ExactSpelling = true)]
    internal static extern int MessageBoxW(
        IntPtr hWnd, string lpText, string lpCption, uint uType);
}
Friend Class NativeMethods
    <DllImport("user32.dll", ExactSpelling:=False)>
    Friend Shared Function MessageBox(hWnd As IntPtr, lpText As String,
        lpCaption As String, uType As UInteger) As Integer
    End Function
End Class

Açıklamalar

isefalse, alan olarak ayarlandığında DllImportAttribute.CharSetA harfiyle eklenen giriş noktası adı çağrılır CharSet.Ansi ve alan olarak ayarlandığında DllImportAttribute.CharSetW harfi eklenmiş giriş noktası adı çağrılırCharSet.Unicode. Genellikle, yönetilen derleyiciler bu alanı ayarlar.

Aşağıdaki tabloda ve alanları arasındaki CharSetExactSpelling ilişki, programlama dili tarafından uygulanan varsayılan değerlere göre gösterilmektedir. Varsayılan ayarı geçersiz kılabilirsiniz, ancak bunu dikkatli bir şekilde yapabilirsiniz.

Dil Amerikan Ulusal Standartlar Enstitüsü (ANSI) Unicode Auto
Visual Basic ExactSpelling:=True ExactSpelling:=True ExactSpelling:=False
C# ExactSpelling=false ExactSpelling=false ExactSpelling=false
C++ ExactSpelling=false ExactSpelling=false ExactSpelling=false

Şunlara uygulanır