DllImportAttribute.CharSet 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.
Indica come eseguire il marshalling dei parametri di stringa nel metodo e controlla l'alterazione dei nomi.
public: System::Runtime::InteropServices::CharSet CharSet;
public System.Runtime.InteropServices.CharSet CharSet;
val mutable CharSet : System.Runtime.InteropServices.CharSet
Public CharSet As CharSet
Valore del campo
Esempio
Nell'esempio di codice seguente viene illustrato come usare l'attributo DllImportAttribute per importare la funzione Win32 MessageBox
. L'esempio di codice chiama quindi il metodo importato.
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
Commenti
Usare questo campo con un membro dell'enumerazione CharSet per specificare il comportamento di marshalling dei parametri stringa e per specificare il nome del punto di ingresso da richiamare (il nome esatto specificato o un nome che termina con "A" o "W"). Il membro di enumerazione predefinito per C# e Visual Basic è CharSet.Ansi
e il membro di enumerazione predefinito per C++ è CharSet.None
, equivalente a CharSet.Ansi
. In Visual Basic si usa l'istruzione Declare
per specificare il CharSet
campo.
Il ExactSpelling campo influenza il comportamento del CharSet
campo per determinare il nome del punto di ingresso da richiamare. Per una descrizione dettagliata ed esempi del marshalling delle stringhe e del comportamento di corrispondenza dei nomi associati al CharSet
campo, vedere Specifica di un set di caratteri.