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 используется инструкция Declare для указания поля CharSet.
Поле ExactSpelling влияет на поведение CharSet поля при определении имени точки входа для вызова. Подробное описание и примеры поведения маршалинга строк и сопоставления имен, связанных с CharSet полем, см. в разделе "Указание набора символов".