DllImportAttribute.CharSet Поле
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Показывает способ маршалинга параметров строки для метода, а также управляет искажением имени.
public: System::Runtime::InteropServices::CharSet CharSet;
public System.Runtime.InteropServices.CharSet CharSet;
val mutable CharSet : System.Runtime.InteropServices.CharSet
Public CharSet As CharSet
Значение поля
Примеры
В следующем примере кода показано, как использовать DllImportAttribute атрибут для импорта функции Win32 MessageBox
. Затем в примере кода вызывается импортированный метод .
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
Комментарии
Используйте это поле с элементом перечисления CharSet , чтобы указать поведение маршалинга строковых параметров и указать имя точки входа для вызова (точное имя или имя, заканчивающееся на "A" или "W"). Элемент перечисления по умолчанию для C# и Visual Basic — , CharSet.Ansi
а элемент перечисления по умолчанию для C++ — CharSet.None
, что эквивалентно CharSet.Ansi
. В Visual Basic для указания CharSet
поля используется Declare
оператор .
Поле ExactSpelling влияет на поведение поля при CharSet
определении имени точки входа для вызова. Подробное описание и примеры поведения маршалинга строк и сопоставления имен, связанных с полем, см. в CharSet
разделе Указание набора символов.