Condividi tramite


DllImportAttribute.ExactSpelling Campo

Definizione

Controlla se il campo CharSet fa in modo che Common Language Runtime cerchi in una DLL non gestita i nomi dei punti di ingresso diversi da quello specificato.

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

Valore del campo

Esempio

In alcuni casi, gli sviluppatori di Visual Basic usano , anziché usare l'istruzioneDllImportAttributeDeclare, per definire una funzione DLL nel codice gestito. L'impostazione del ExactSpelling campo è uno di questi casi.

[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

Commenti

Se false, il nome del punto di ingresso aggiunto con la lettera A viene richiamato quando il DllImportAttribute.CharSet campo è impostato su CharSet.Ansie il nome del punto di ingresso accodato con la lettera W viene richiamato quando il DllImportAttribute.CharSet campo è impostato su CharSet.Unicode. In genere, i compilatori gestiti impostano questo campo.

Nella tabella seguente viene illustrata la relazione tra i CharSet campi e ExactSpelling , in base ai valori predefiniti imposti dal linguaggio di programmazione. È possibile eseguire l'override dell'impostazione predefinita, ma farlo con cautela.

Linguaggio 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

Si applica a