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 문자열 마샬링 및 이름 일치 동작에 대한 자세한 설명과 예제는 문자 집합 지정을 참조하세요.

적용 대상

추가 정보