DllImportAttribute.ExactSpelling Alan

Tanım

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

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

Alan Değeri

Örnekler

Bazı durumlarda Visual Basic geliştiricileri, yönetilen kodda DllImportAttributebir DLL işlevi tanımlamak için deyimini kullanmak Declare yerine 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 CharSet.AnsiA harfiyle eklenen giriş noktası adı çağrılır DllImportAttribute.CharSet ve alan olarak ayarlandığında CharSet.UnicodeW harfi eklenmiş giriş noktası adı çağrılırDllImportAttribute.CharSet. Genellikle, yönetilen derleyiciler bu alanı ayarlar.

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

Dil ANSI Unicode Otomatik
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