DllImportAttribute.ExactSpelling Campo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.Ansi
e 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 |