다음을 통해 공유


DllImportAttribute.BestFitMapping 필드

유니코드 문자를 ANSI 문자로 변환할 때 가장 적합한 매핑 동작을 활성화 또는 비활성화합니다.

네임스페이스: System.Runtime.InteropServices
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
Public BestFitMapping As Boolean
‘사용 방법
Dim instance As DllImportAttribute
Dim value As Boolean

value = instance.BestFitMapping

instance.BestFitMapping = value
public bool BestFitMapping
public:
bool BestFitMapping
public boolean BestFitMapping
public var BestFitMapping : boolean

설명

true인 경우 가장 적합한 매핑 동작이 활성화됩니다. 그렇지 않으면 가장 적합한 매핑 동작이 비활성화됩니다. BestFitMapping 필드는 기본적으로 true입니다. 이 필드의 설정값은 System.Runtime.InteropServices.BestFitMappingAttribute 특성에 대한 모든 수준의 설정을 재정의합니다.

공용 언어 런타임은 Windows 98 또는 Windows Me에서 실행되는 관리되지 않는 메서드에 전달되는 관리되는 유니코드 문자를 ANSI 문자로 변환합니다. 가장 적합한 매핑을 사용하면 Interop 마샬링은 정확하게 일치하는 항목이 없을 때 가장 가깝게 일치하는 문자를 제공할 수 있습니다. 예를 들어, 마샬러는 ANSI 문자가 적용되는 관리되지 않는 메서드에 대해 유니코드 저작권 문자를 'c'로 변환합니다. 가장 적합한 표시가 없는 일부 문자는 매핑할 수 없는 것으로 간주됩니다. 매핑할 수 없는 문자는 주로 기본 '?'로 변환됩니다. ANSI 문자입니다.

경고

특정 유니코드 문자가 백슬래시('\') 문자 등과 같이 경로를 변경할 수 있는 위험 문자로 변환됩니다. ThrowOnUnmappableChar 필드를 true로 설정하여 예외를 throw함으로써 매핑할 수 없는 문자가 있다는 사실을 호출자에게 알릴 수 있습니다.

경고

기본적으로, ANSI Char 또는 LPSTR 요소를 포함하는 관리되는 배열을 관리되지 않는 안전 배열로 전달할 때 BestFitMappingThrowOnUnmappableChar 필드에서 제공하는 기본값을 변경할 수 없습니다. 가장 적합한 매핑은 항상 활성화되어 있으며 예외는 throw되지 않습니다. 이렇게 함께 사용하면 보안 모델이 손상될 수 있습니다.

예제

경우에 따라 Visual Basic 개발자는 Declare 문을 사용하는 대신 DllImportAttribute를 사용하여 관리 코드로 DLL 함수를 정의합니다. BestFitMapping 필드를 설정하는 경우가 이에 해당합니다. 다음 예제에서는 ANSI 문자 집합을 지정하고, 가장 적합한 매핑 동작을 비활성화하고, 매핑되지 않는 유니코드 문자에 대해 예외를 throw하여 가장 엄격한 문자 매핑 보안을 플랫폼 호출 메서드 정의에 적용하는 방법을 보여 줍니다.

<DllImport("My.dll", CharSet := CharSet.Ansi, _
                       BestFitMapping := False _
                       ThrowOnUnmappableChar := True)>
[DllImport("My.dll", CharSet = CharSet.Ansi, 
                       BestFitMapping = false
                       ThrowOnUnmappableChar = true)]

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1에서 지원

참고 항목

참조

DllImportAttribute 클래스
DllImportAttribute 멤버
System.Runtime.InteropServices 네임스페이스
CharSet
BestFitMappingAttribute 클래스