DllImportAttribute.BestFitMapping Fält
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Aktiverar eller inaktiverar mappningsbeteendet som passar bäst när unicode-tecken konverteras till ANSI-tecken.
public: bool BestFitMapping;
public bool BestFitMapping;
val mutable BestFitMapping : bool
Public BestFitMapping As Boolean
Fältvärde
Exempel
I vissa fall använder Visual Basic utvecklare DllImportAttribute i stället för instruktionen Declare för att definiera en DLL-funktion i hanterad kod. Att ange fältet BestFitMapping är ett av dessa fall. I följande exempel visas hur du tillämpar den strängaste teckenmappningssäkerheten på en plattform som anropar metoddefinitioner genom att ange ANSI-teckenuppsättningen, inaktivera bästa beteende för anpassningsmappning och utlösa ett undantag för ommappade Unicode-tecken.
[DllImport("My.dll", CharSet = CharSet::Ansi,
BestFitMapping = false,
ThrowOnUnmappableChar = true)]
int SomeFuncion2(int parm);
[DllImport("My.dll", CharSet = CharSet.Ansi,
BestFitMapping = false,
ThrowOnUnmappableChar = true)]
internal static extern int SomeFuncion2(int parm);
<DllImport("My.dll", CharSet:=CharSet.Ansi,
BestFitMapping:=False,
ThrowOnUnmappableChar:=True)>
Friend Shared Function SomeFuncion2(parm As Integer) As Integer
End Function
Kommentarer
Om trueär mappningsbeteendet bäst aktiverat. Annars inaktiveras mappning med bäst passform. Fältet BestFitMapping är true som standard. Inställningarna för det här fältet åsidosätter alla nivåinställningar för attributet System.Runtime.InteropServices.BestFitMappingAttribute .
Caution
Vissa Unicode-tecken konverteras till farliga tecken, till exempel omvänt snedstreck som oavsiktligt kan ändra en sökväg. Genom att ange ThrowOnUnmappableChar fältet till truekan du signalera förekomsten av ett ommappbart tecken till anroparen genom att utlösa ett undantag.
Caution
Du kan inte ändra standardvärdena som anges av fälten BestFitMapping och ThrowOnUnmappableChar när du skickar en hanterad matris vars element är ANSI-tecken eller LPSTR:er till en ohanterad säker matris. Best-fit-mappning är alltid aktiverat och inget undantag genereras. Tänk på att den här kombinationen kan äventyra din säkerhetsmodell.