Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

DllImportAttribute.CharSet Field

Definition

Namespace:
System.Runtime.InteropServices
Assemblies:
mscorlib.dll, System.Runtime.InteropServices.dll
Assemblies:
netstandard.dll, System.Runtime.InteropServices.dll
Assembly:
System.Runtime.InteropServices.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
DllImportAttribute.cs
Source:
DllImportAttribute.cs
Source:
DllImportAttribute.cs
Source:
DllImportAttribute.cs
Source:
DllImportAttribute.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Indicates how to marshal string parameters to the method and controls name mangling.

public: System::Runtime::InteropServices::CharSet CharSet;
public System.Runtime.InteropServices.CharSet CharSet;
val mutable CharSet : System.Runtime.InteropServices.CharSet
Public CharSet As CharSet 

Field Value

Examples

The following code example shows how to use the DllImportAttribute attribute to import the Win32 MessageBox function. The code example then calls the imported method.

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

Remarks

Use this field with a member of the CharSet enumeration to specify the marshaling behavior of string parameters and to specify which entry-point name to invoke (the exact name given or a name ending with "A" or "W"). The default enumeration member for C# and Visual Basic is CharSet.Ansi and the default enumeration member for C++ is CharSet.None, which is equivalent to CharSet.Ansi. In Visual Basic, you use the Declare statement to specify the CharSet field.

The ExactSpelling field influences the behavior of the CharSet field in determining which entry-point name to invoke. For a detailed description and examples of the string marshaling and name matching behavior associated with the CharSet field, see Specifying a Character Set.

Applies to

See also


Feedback

Was this page helpful?