DllImportAttribute.ExactSpelling 필드

정의

CharSet 필드로 인해 공용 언어 런타임이 지정된 이름 이외의 진입점 이름을 관리되지 않는 DLL에서 검색할지 여부를 제어합니다.

public: bool ExactSpelling;
public bool ExactSpelling;
val mutable ExactSpelling : bool
Public ExactSpelling As Boolean 

필드 값

예제

경우에 따라 Visual Basic 개발자는 문을 사용하는 대신 를 사용하여 DllImportAttributeDeclare 관리 코드에서 DLL 함수를 정의합니다. 필드 설정 ExactSpelling 은 이러한 경우 중 하나입니다.

[DllImport("user32.dll", CharSet = CharSet::Ansi, ExactSpelling = true)]
int MessageBoxA(IntPtr hWnd, String^ Text,
    String^ Caption, unsigned int Type);
internal static class NativeMethods
{
    [DllImport("user32.dll", CharSet = CharSet.Unicode,
        ExactSpelling = true)]
    internal static extern int MessageBoxW(
        IntPtr hWnd, string lpText, string lpCption, uint uType);
}
Friend Class NativeMethods
    <DllImport("user32.dll", ExactSpelling:=False)>
    Friend Shared Function MessageBox(hWnd As IntPtr, lpText As String,
        lpCaption As String, uType As UInteger) As Integer
    End Function
End Class

설명

이면 false필드가 로 설정CharSet.Ansi되면 문자 A와 함께 추가된 진입점 이름이 호출되고 필드가 로 설정CharSet.Unicode될 때 DllImportAttribute.CharSetDllImportAttribute.CharSet 문자 W와 함께 추가된 진입점 이름이 호출됩니다. 일반적으로 관리되는 컴파일러에서 이 필드를 설정합니다.

다음 표에서는 프로그래밍 언어에 의해 부과되는 CharSet 기본값을 기준으로 및 ExactSpelling 필드 간의 관계를 보여 줍니다. 기본 설정을 재정의할 수 있지만 주의해서 재정의할 수 있습니다.

언어 ANSI 유니코드(Unicode) 자동
Visual Basic ExactSpelling:=True ExactSpelling:=True ExactSpelling:=False
C# ExactSpelling=false ExactSpelling=false ExactSpelling=false
C++ ExactSpelling=false ExactSpelling=false ExactSpelling=false

적용 대상